Python 如何解决“;WebSocket握手期间出错:意外响应代码:503”;Django频道Heroku应用程序中出错?

Python 如何解决“;WebSocket握手期间出错:意外响应代码:503”;Django频道Heroku应用程序中出错?,python,django,heroku,websocket,django-channels,Python,Django,Heroku,Websocket,Django Channels,控制台中的错误: app.e05f6d1a6569.js:105 WebSocket connection to 'wss://domecode.com/wss?session_key=${sessionKey}' failed: Error during WebSocket handshake: Unexpected response code: 503 (anonymous) @ app.e05f6d1a6569.js:105 mightThrow @ jquery.js

控制台中的错误:

  app.e05f6d1a6569.js:105 WebSocket connection to 'wss://domecode.com/wss?session_key=${sessionKey}' failed: Error during WebSocket handshake: Unexpected response code: 503
    (anonymous) @ app.e05f6d1a6569.js:105
    mightThrow @ jquery.js:3762
    process @ jquery.js:3830
我正在使用Daphne在Heroku上运行Django频道应用程序(消息传递应用程序)。与此问题对应的所有文件都包含在此问题中

routing.py-消息传递应用程序

来自消息导入消费者
从django.url导入re_路径
websocket\u urlpatterns=[
re_路径(r'^ws$,consumers.ChatConsumer),
]
app.js-剪掉app.js文件的websocket部分

var ws_scheme=window.location.protocol=='https:'?'wss':'ws';
var socket=newwebsocket(ws_scheme+':/'+window.location.host+'/'+ws_scheme+'?session_key=${sessionKey}');
asgi.py-项目的asgi

导入操作系统
进口django
#从django.core.asgi导入获取\u asgi\u应用程序
从channels.routing导入获取默认应用程序
os.environ.setdefault('DJANGO\u SETTINGS\u MODULE','domecode.SETTINGS')
django.setup()#在使用通道时与asgi一起部署
应用程序=获取默认应用程序()
程序文件

release: python3 manage.py makemigrations && python3 manage.py migrate
web: daphne domecode.asgi:application --port $PORT --bind 0.0.0.0 -v2
worker: python3 manage.py runworker channel_layer -v2 
通道层的Django设置代码段-REDIS\u URL是Heroku中的一个环境变量

CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        'CONFIG': {
            "hosts": [config('REDIS_URL')],
        },
    },
}
有关于这里出了什么问题的信息吗

旁注:它在开发服务器中工作得非常好,但是它给出了在生产服务器顶部提到的错误


当我在生产服务器上发送消息时,控制台中会出现错误,除非我重新加载页面,否则我看不到发送的消息。我试着到处寻找类似的问题,但没有一个问题能以适合我的方式得到回答。

消息应用程序的Procfile、routing.py中的更改以及一些小的更改,例如在Heroku上激活
worker dyno
,对我有效

Procfile应更改为:

release: python3 manage.py makemigrations && python3 manage.py migrate
web: daphne domecode.asgi:application --port $PORT --bind 0.0.0.0 -v2
worker: python3 manage.py runworker channels --settings=domecode.settings -v2
和Routing.py到:


消息应用程序的Procfile、routing.py中的更改,以及一些小的更改,例如在Heroku上激活
worker dyno
,对我来说都很有效

Procfile应更改为:

release: python3 manage.py makemigrations && python3 manage.py migrate
web: daphne domecode.asgi:application --port $PORT --bind 0.0.0.0 -v2
worker: python3 manage.py runworker channels --settings=domecode.settings -v2
和Routing.py到: