3
Как я новичок в websockets, возможно ли создать несколько websocket.receive маршрутов для разных потребителей с разными группами?Несколько websocket.receive в каналах django
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),
]
Куда-нибудь посоветуете?
это не работает для меня ... это официальный способ сделать это? здесь они не используют путь для разделения действий, но я думаю, что это тоже должно работать? https://github.com/andrewgodwin/channels-examples – cwirz
Этот ответ не решает проблему. Множество потребителей по одному каналу в настоящее время не имеют смысла - вы определяете разные функции для работы с одними и теми же входящими сообщениями. Какая функция обрабатывает сообщение, концептуально произвольна. Чтобы разделить трафик веб-обозревателя на один из этих трех каналов на разные функции, вам необходимо работать внутри пользователей websocket.xxx. Возможно, путем дальнейшего разбора этого пути. Для получения дополнительной информации см. Https://groups.google.com/forum/#!topic/django-developers/n3cC9AWwTXA. –