我正在研究一个django项目,其中涉及不同应用程序的频道。第一个应用程序(从传感器接收数据)具有它自己的消费者和路由,以及第二个应用程序(更新已登录用户的列表)。Django频道 - 握手和连接,但websocket.connect函数未执行
在第一个应用程序内一切正常。
在第二个应用程序中握手完成并建立连接,但链接到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中使用什么网址结束。
var ws = new WebSocket('ws://127.0.0.1:8000/users/lobby/');
ws.onopen = function() {
console.log('connect');
ws.send('connect');
}
的JavaScript的ws
将与.../users/lobby/
或.../users/
.../lobby/
连接。
感谢您的任何提示!