于是,我们考虑使用websocket建立一个连接来完成这个功能。于是我们还需要安装一些依赖包以支持其正常工作然后在settings.py文件中添加在项目目录下新建一个文件,用来存放我们的channels代码,为channel。相对于建立一个聊天室,在这里不同的是我们在ChatComsumer中添加了一个chats来记录每一个group中的连接数。以此根据这个连接数来判断,聊天双方是否都已连接进入该个聊天group。当该客户端断开连接时,会调用disconnect()函数,将该客户端从group中移除,同时删除它在chats中的记录。同样,在channel文件夹下新建一个routing.py文件,然后在其中添加以下内容,其工作原理和django的urls.py一致,是websocket的连接路径。

Django Channels 实现点对点实时聊天和消息推送功能

Django Channels 实现点对点实时聊天和消息推送功能

Django Channels 实现点对点实时聊天和消息推送功能