对routing疑问

来源:9-14 前端WebSocket API讲解

慕容7472185

2021-03-20

想请问下老师,通过channel_layers把私信发送给consumers中后,是怎么通过routing里的路由进入到consumers里的数据函数里的,这个过程在学习课程中还是有点晕。麻烦老师给讲解下。不理解是怎么找到这个路由的,转而进入consumers对应的函数中的。

写回答

1回答

Jack

2021-03-21

您好,这里是通过路由的名称匹配。

在routings.py里面,

path('ws/<str:username>/', MessageConsumer)  # 前面 ws/默认的

在Messager/views.py里面,

async_to_sync(channel_layer.group_send)(recipent.username, payload)

A给B发私信,是先把消息存到redis了,B登陆的时候,通过 ws/b_username/ 建立websocket连接,从缓存中获取消息

payload里的 'type': 'receive' 指定了使用reiceive方法

0
4
Jack
回复
慕容7472185
这个卸载前端的js里面,用户点开私信的页面的时候,会建立/ws/username/的websocket连接
2021-03-23
共4条回复

Django高级实战 开发企业级问答网站

融合Django高级用法/算法/设计模式/TestCase测试/云计算打造项目

900 学习 · 756 问题

查看课程