繁体   English   中英

django频道中有多个websocket.receive

[英]Multiple websocket.receive in django channels

由于我是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),
]

有什么建议吗?

这是我对上面的实现。 如果需要进一步修改,请建议。

#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"),
]

你可以在这里找到asifpy / channels-examples的代码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM