python - 在 Django Channels 上找不到路径

我在我的 Django channel 应用程序上创建了一个简单的消费者,但是当我尝试从我的前端连接到 websocket 时,我不断收到以下错误:

ws_protocol: ERROR - [Failure instance: Traceback: <class 'ValueError'>: No route found for path 'messages/127.0.0.1:8000/messages/'.

这是我的路线: myapp>routing.py

from .consumers import EchoConsumer

websocket_urlpatterns = [
    path("messages/", EchoConsumer),
]

mysite>routing.py

# mysite/routing.py
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
import myapp.routing

application = ProtocolTypeRouter({
    # (http->django views is added by default)
    'websocket': AuthMiddlewareStack(
        URLRouter(
            myapp.routing.websocket_urlpatterns
        )
    ),
})

这是我尝试从我的前端连接到 websocket 的方式:

var wsStart = 'ws://' + window.location.host + window.location.pathname

谁能帮我找出我做错了什么,好吗?

最佳答案

您正在使用路径而不是 url,只需在 routing.py 中尝试:

from .consumers import EchoConsumer
from django.conf.urls import url

websocket_urlpatterns = [
    url("messages/", EchoConsumer),
]

https://stackoverflow.com/questions/61048593/

相关文章:

javascript - 使用 ThreeJS 可以保护 3D 模型吗?

java - Spring 将 @PathVariable 绑定(bind)到 JavaBean

javascript - 使用 Jest/Enzyme 在 React 中的功能组件内部测试方法

magento - 有没有办法使用 Rest api 在 Magento 2 中获取特定类别的自定义

android - performAction() 中的 SCROLL_TO_POSITION 返回

python - 求解一对线性方程时的断言错误

go - 在 Ubuntu 18.04 的 $ANDROID_HOME/ndk-bundle 和 $

bash - 如何使用 shell 脚本判断 postgres 数据库表是否存在

python - 无法执行 Cloud Function 触发不允许未经身份验证的调用的 HTTP

javascript - 按下后退按钮时防止 react 路由器重新加载 API 调用。 react