Ad esempio, in https://www.youtube.com/watch?v=n0WUjGkDFS0 alle 10:36 accenna alla possibilità di creare più canali, ma come si può effettivamente realizzare ciò?Come si creano più canali con Actioncable; come si passa una variabile nel documento ai canali e ai lavori di javascript e ruby?
Secondo Rails 5 ActionCable establish stream from URL parameters una variabile può essere definito e passato come parametro del tipo:
def subscribed
stream_from "room_channel_#{params[:roomId]}"
end
Ma nel file javascript prima di passare i dati qui, come si fa a passare nei dati dalla pagina? L'esempio seguente restituisce un errore poiché presumibilmente il cavo viene definito prima del caricamento del documento.
App.room = App.cable.subscriptions.create { channel: "RoomChannel", roomId: document.getElementById("message_text").getAttribute("data-room")}
Quindi, se si fa successo ottenere i dati dal documento nella variabile qui e passa al metodo stream_from, poi infine, come fa il canale destro viene passato al metodo eseguire da utilizzare nella trasmissione di lavoro?
def perform(message)
ActionCable.server.broadcast 'room_channel_???', message: render_message(message) #, roomId: roomId
end
Grazie!
Ho lo stesso problema, hai capito? –
Non sono sicuro del motivo per cui non l'ho visto prima, ho risposto a una domanda simile qui che include il passaggio delle variabili: http://stackoverflow.com/questions/36926816/actioncable-how-to-use-dynamic-channels/36964252? noredirect = 1 # comment64180916_36964252 – Laser