我正在使用 IIS 服务器部署 Django 应用程序。在此 Django 应用程序中,我实现了 Django Channels 以使用 websockets。在本地,Websocket 连接一切正常,我可以发送消息。但是,当我部署 Django 应用程序时,问题就出现了。 HTTPS 工作得很好,但 WSS(WebSocket Secure)无法工作。我遇到 404 未找到错误。
我正在尝试的网址是
wss://my_domain/ws/start-quiz/
另请注意,我使用 memurai 而不是 redis 来使用channel_layers
CHANNEL_LAYERS = {
'default': {
'BACKEND': 'channels_redis.core.RedisChannelLayer',
'CONFIG': {
"hosts": [('127.0.0.1', 6370)],
},
},
}
我遇到了同样的问题,我使用 Daphne 和通道解决了这个问题。 我的 web.config 文件包含
rules>
<rule name="WebSocketProxy" stopProcessing="true">
<match url="^ws/(.*)" />
<action type="Rewrite" url="http://127.0.0.1:8001/ws/{R:1}" />
</rule>
</rules>
为了在本地运行 Daphne,我使用了以下命令
daphne -p 8000 your_project_name.asgi:application
请首先确保使用 IIS 和 FASTCGI 的 Django 项目配置正确