[英]Multiple websocket.receive in django channels
As I'm new to websockets, Is it possible to create multiple websocket.receive routes for different consumers with different groups? 由于我是websockets的新手,是否可以为具有不同组的不同消费者创建多个websocket.receive路由?
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),
]
Any advise on it? 有什么建议吗?
Here is my implementation for the above. 这是我对上面的实现。 Please suggest if further modifications required. 如果需要进一步修改,请建议。
#app1/routing.py
from channels.routing import route
from . import consumers
post_websocket = [
route("websocket.connect", consumers.websocket_connect),
route("websocket.disconnect", consumers.websocket_disconnect)
]
vote_websocket = [
route("websocket.connect", consumers.websocket_voteconnect),
route("websocket.receive", consumers.ws_updatevotes),
route("websocket.disconnect", consumers.websocket_votedisconnect)
]
# myproject/routing.py
from channels import include
channel_routing = [
include("app1.routing.post_websocket", path=r"^/app1/post/notification"),
include("app1.routing.vote_websocket", path=r"^/app1/vote/notification"),
]
You can find the code here asifpy/channels-examples 你可以在这里找到asifpy / channels-examples的代码
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.