Django频道-握手和;连接,但未执行websocket.Connect函数

Django频道-握手和;连接,但未执行websocket.Connect函数,websocket,connection,django-channels,Websocket,Connection,Django Channels,我正在做一个django项目,在不同的应用程序中使用不同的频道。第一个应用(从传感器接收数据)有自己的消费者和路由,第二个应用(更新登录用户列表) 在第一个应用程序中,一切正常 在第二个应用程序中,握手已完成,连接已建立,但链接到websocket.receive的功能未执行 from channels.routing导入路由,路由类 从channels.staticfiles导入StaticFilesConsumer 从users.consumer导入ws\u connect,ws\u dis

我正在做一个django项目,在不同的应用程序中使用不同的频道。第一个应用(从传感器接收数据)有自己的消费者和路由,第二个应用(更新登录用户列表)

在第一个应用程序中,一切正常

在第二个应用程序中,握手已完成,连接已建立,但链接到
websocket.receive的功能未执行

from channels.routing导入路由,路由类
从channels.staticfiles导入StaticFilesConsumer
从users.consumer导入ws\u connect,ws\u disconnect
通道_路由=[
路由('websocket.connect',ws_connect,path=r'^/users/lobb/'),
...
]
以及
ws\u connect

导入json
来自频道导入组
从channels.handler导入AsgiHandler
从channels.auth导入频道会话用户,
信道会话用户来自信道http,信道会话
@来自http的通道会话用户
def ws_connect(消息):
打印(‘测试’)
从不执行
ws\u connect
打印('test')
。此外,我在javascript中使用的url结尾也无关紧要

var ws=new-WebSocket('ws://127.0.0.1:8000/users/lobb/');
ws.onopen=函数(){
console.log('connect');
ws.send('connect');
}
javascript的
ws
将与
../users/
../users/lobb/
../lobb/
连接


谢谢你的提示

因为我显然需要50%的声誉才能发表评论,所以我只想回答一下,尽管我不确定这是否适合你

我在复制制作频道的人制作的github multichat项目的部分内容时遇到了同样的问题

我的问题显然是,我拼写的路由有一点错误,因此它没有调用我为该路由设置的正确函数

所以我的建议是,你应该到处检查路线,看看你是否把事情搞砸了。我个人只在检查错误时检查了我的应用程序路由,但它在我的项目文件夹中,我把路由搞乱了

另一件可能会引起这个问题的事情是,你的应用程序中只有一个路由,但在主文件夹中没有。在这种情况下,您需要将另一个应用程序路由包含在您想要的路径中,就像视图一样:

from channels import include


channel_routing = [
        include("crypto_chat.routing.websocket_routing", path=r"^/chat/stream/$"),
        include("crypto_chat.routing.chat_routing"),
]
应用程序路由:

from channels import route
from .consumers import  ws_connect, ws_receive, ws_disconnect, user_offline, user_online, chat_send

websocket_routing = [
    route("websocket.connect", ws_connect),
    route("websocket.receive", ws_receive),
    route("websocket.disconnect", ws_disconnect),
]

chat_routing = [
    route("chat.receive", chat_send, command="^send$"),
    route("chat.receive", user_online, command="^online$"),
    route("chat.receive",user_offline, command="^offline$"),
]
如果这没有帮助,那么我建议您转到github频道页面获取示例,并将两者进行比较。请记住,该项目可能是由一个更成熟的渠道版本(也可能是django)制作的

希望这能有所帮助,正如我所说,我会发表评论,但我不能,因为我的代表显然