【发布时间】:2017-07-26 13:09:27
【问题描述】:
我正在开发一个 django 项目,其频道涉及不同的应用程序。第一个应用(从传感器接收数据)有它自己的消费者和路由,以及第二个(更新登录用户列表)。
在第一个应用程序中一切正常。
在第二个应用程序中,握手完成并建立连接,但链接到websocket.receive 的函数没有执行。
from channels.routing import route, route_class
from channels.staticfiles import StaticFilesConsumer
from users.consumer import ws_connect, ws_disconnect
channel_routing = [
route('websocket.connect', ws_connect, path=r'^/users/lobby/'),
...
]
还有ws_connect
import json
from channels import Group
from channels.handler import AsgiHandler
from channels.auth import channel_session_user,
channel_session_user_from_http, channel_session
@channel_session_user_from_http
def ws_connect(message):
print('test')
ws_connect 的 print('test') 永远不会被执行。此外,我在 javascript 中使用的 url 结尾甚至都没有关系。
var ws = new WebSocket('ws://127.0.0.1:8000/users/lobby/');
ws.onopen = function() {
console.log('connect');
ws.send('connect');
}
javascript 的ws 将与.../users/ 的.../users/lobby/ 或.../lobby/ 连接。
感谢您对此的任何提示!
【问题讨论】:
标签: websocket connection django-channels