我正在尝试在服务器上运行django channels-examples中的multichat项目。在Windows机器上本地运行良好,但当我将其放到Linux服务器上并使用runserver启动时,它无法正常工作:
./manage.py runserver
当我访问网站时,它会正确显示,但是一旦JS发送WebSocket请求,我总是得到这个响应:
[2016/08/02 14:35:48] HTTP GET /chat/stream/ 404 [0.04, 127.0.0.1:40186]
....(many lines of this)
因此,WebSocket请求被处理为HTTP请求。响应应该是这样的:
[2016/08/02 16:34:45] WebSocket CONNECT /chat/stream/ [127.0.0.1:60250]
我不知道出了什么问题。HTTP和WebSocket的路由似乎是在daphne/twisted/...深处完成的。
我的频道设置如下(如果有帮助的话):
CHANNEL_LAYERS = {
"default": {
"BACKEND": "asgi_redis.RedisChannelLayer",
"CONFIG": {
"hosts": [(redis_host, 62031)],
},
"ROUTING": "multichat.routing.channel_routing",
},
}
Twisted版本为16.2.0。
非常感谢能提供任何帮助或提示要寻找的方向。