我有一个wsgi项目,其中添加了asgi/通道组件。当我在python3 manage.py runserver中运行它时,当我在ngrok.io上使用websocket测试仪时,我能够获得websocket连接。My ngrok.io随后显示:
GET /ws/ 101 Switching Protocols
但当我使用heroku local或将其推送到他们的云中时,会显示“/ws/”未找到:
9:12:04 PM web.1 | [2019-12-20 21:12:04 -0800] [5123] [INFO] Starting gunicorn 19.9.0
9:12:04 PM web.1 | [2019-12-20 21:12:04 -0800] [5123] [INFO] Listening at: http://0.0.0.0:5000 (5123)
9:12:04 PM web.1 | [2019-12-20 21:12:04 -0800] [5123] [INFO] Using worker: sync
9:12:04 PM web.1 | [2019-12-20 21:12:04 -0800] [5126] [INFO] Booting worker with pid: 5126
9:12:10 PM web.1 | Not Found: /ws/
看起来它在寻找我服务器的wsgi端。(?)但是我的websocket在asgi端
GET/ws/400错误请求
my requirements.txt由以下部分组成
Django==2.2.6
django-heroku==0.3.1
daphne==2.4.0
gunicorn==19.9.0
requests==2.22.0
channels==2.3.1
我的routing.py
application = ProtocolTypeRouter({
"websocket": URLRouter([
path('ws/', backEndConsumer),
])
})
而我的url.py
urlpatterns = [
path('webhook/', views.webhook, name='webhook'),
]
my settings.py是https://justpaste.it/78n46 既然代码没有什么不同,那么可能是环境的不同。我的pip3冻结有很多文件,所以我不确定我是否能找出缺少的依赖项(如果有的话)https://justpaste.it/3r5wd
也许我不该用gunicorn换成daphne?但是我当前的设置在python3上运行得很好,为什么我在heroku上运行它时它不工作呢
目前没有回答
相关问题 更多 >
编程相关推荐