如何清除此错误'未为范围类型'websocket配置任何应用程序'

时间:2019-01-28 05:52:59

标签: javascript django django-channels

我正在尝试使用Django构建聊天应用程序,但是当我尝试运行该应用程序时出现此错误

x[1]

我的routing.py文件是

No application configured for scope type 'websocket'

我的settings.py是

from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter , URLRouter
import chat.routing

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

当我在2个标签中打开URL时,我应该能够看到我在第一个标签中发布的消息出现在第二个标签中,但是我遇到了错误

ASGI_APPLICATION = 'mychat.routing.application'
CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        'CONFIG': {
            "hosts": [('127.0.0.1', 6379)],
        },
    },
}

我在stackoverflow上找不到这个问题的重复

1 个答案:

答案 0 :(得分:0)

问题可能出在 asgi.py 中:

application = ProtocolTypeRouter({ "http": get_asgi_application(), "websocket": AuthMiddlewareStack( 网址路由器( chat.routing.websocket_urlpatterns ) ), # 现在只是 HTTP。 (我们可以稍后添加其他协议。) })