Ich bin ein neuer Rails-Entwickler und habe angefangen, ActionCable in Rails 5 zu verwenden, um eine Chat-App zu erstellen.rails 5 - Create channel per concussion von ActionCable
Das Problem ist, dass es viele Chat-Beispiele im Internet gibt, die ActionCable verwenden, aber alle sind ziemlich einfach. Sie erstellen einen Kanal und alle Benutzer, die mit diesem Kanal verbunden sind, können die Nachrichten von anderen senden oder lesen.
Zum Beispiel erstellen sie einen Chat-Kanal wie folgt aus:
class ChatChannel < ApplicationCable::Channel
def subscribed
stream_from 'messages'
end
def speak(data)
ActionCable.server.broadcast('messages',
message: render_message(data['message']))
end
private
def render_message(message)
ApplicationController.render(partial: 'messages/message',
locals: { message: message })
end
end
Und in der Client-Seite, sie eine Verbindung zu diesem Kanal
App.chat = App.cable.subscriptions.create "ChatChannel",
received: (data) ->
$('#messages').append(data.message)
speak: (msg) ->
@perform 'speak', message: msg
Wie kann ich einen Kanal pro Gespräch zwischen 2 erstellen Benutzer?
Dank. Dies ist absolut ein Weg, den ich bereits verwendet habe, um mit diesem Problem umzugehen –
Froh, dass es geholfen hat! Markieren Sie es als akzeptiert, wenn es das war, was Sie brauchten. –
Ich glaube nicht, dass dies funktionieren würde, wenn Sie in der URL keine 'conversation_id' haben. Würde es Ihnen etwas ausmachen, darüber zu beraten, dass Sie das tun würden? Ich arbeite gerade daran, aber die Konversation wird auf einer Indexseite angezeigt, die alle Konversationen auflistet. Denken Sie an Messenger.com – PrimeTimeTran