我正在尝试从服务器上的 django Channels-examples 运行多聊天项目。它可以在 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。
非常感谢任何关于寻找方向的帮助或提示。