3
Da ich neu bei Websockets bin, ist es möglich, mehrere Websocket.Receive Routen für verschiedene Verbraucher mit verschiedenen Gruppen zu erstellen?Multiple websocket.receive in django channels
app/consumers.py
# First receiver
def ws_receive1(message):
Group(
'Group1',
channel_layer=message.channel_layer
).send({'text': "receiver1"})
def ws_receive2(message):
Group(
'Group2',
channel_layer=message.channel_layer
).send({'text': "receiver2"})
# routing.py
channel_routing = [
route("websocket.connect", consumers.ws_connect1),
route("websocket.disconnect", consumers.ws_disconnect1),
route("websocket.receive", consumers.ws_receive1),
route("websocket.connect", consumers.ws_connect2),
route("websocket.disconnect", consumers.ws_disconnect2),
route("websocket.receive", consumers.ws_receive2),
]
Irgendwelche Ratschläge?
dies nicht funktioniert für mich ... ist dies der offizielle Weg, es zu tun? Hier verwenden sie nicht den Weg, um Aktionen aufzuteilen, aber ich denke, das sollte auch funktionieren. https://github.com/andrewgodwin/channels-examples – cwirz
Diese Antwort adressiert das Problem nicht. Mehrere Konsumenten auf einem einzelnen Kanal sind derzeit nicht sinnvoll - Sie definieren verschiedene Funktionen, um mit den gleichen eingehenden Nachrichten umzugehen. Welche Funktion die Nachricht behandelt, ist konzeptionell beliebig. Um den auf einem dieser drei Kanäle eingehenden WebSocket-Verkehr in verschiedene Funktionen aufzuteilen, müssen Sie innerhalb der Websocket.xxx-Benutzer arbeiten. Vielleicht, indem man den Pfad dort weiter analysiert. Weitere Informationen finden Sie unter https://groups.google.com/forum/#!topic/django-developers/n3cC9AWwTXA. –