django中的websocket(channels)配置

1.安装channels,安装版本高于1.1.8,安装channels会附带安装许多依赖包,其中twisted可能存在兼容问题

pip install channels

2.在settings.py中注册channels


settings.py

3.在项目目录中添加websocket文件routing.py和asgi.py与settings.py同级


4.asgi.py中的内容为

import os

import channels.asgi

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "canteen.settings") #这里填的是你的配置文件settings.py的位置

channel_layer = channels.asgi.get_channel_layer()


asgi.py

5.routing.py中的内容为

from channels.routing import route,include

from apps.user import views

channel_routing = [ route('websocket.connect',views.connect),

        route('websocket.receive',views.recive),

        route('websocket.disconnect',views.disconnect),

]

routing = [ include(channel_routing,path=r'^/distribute_task'),]

routing.py

    这里是websocket的路由配置,channel_routing中是websocket的回调试图函数

6.添加channels的配置

CHANNEL_LAYERS = {

        "default": {

                "BACKEND": "asgiref.inmemory.ChannelLayer",

                "ROUTING": "canteen.routing.routing",

        },

}

settings.py
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容