[英]How to resolve “Error during WebSocket handshake: Unexpected response code: 503” error in a Django Channels Heroku app?
[英]“Error during WebSocket handshake” when hosted on Heroku
我正在 Django 和 atm 上創建一個聊天服務器,試圖實現 websockets。 它在本地運行良好,但每當我在 Heroku 上啟動它時,websocket 就無法訪問。 這是我的客戶端腳本:
var loc = window.location
var ws_start = 'ws://'
if (loc.protocol == 'https:'){
ws_start = 'wss://'
}
var endpoint = ws_start + loc.host + loc.pathname
var socket = new WebSocket(endpoint)
完整的錯誤代碼:
WebSocket connection to 'wss://my-app.herokuapp.com/chat' failed: Error during WebSocket handshake: Unexpected response code: 500
我已經看到了各種類似的問題,它們要么沒有得到解答,要么正在研究處理 SSL 證書。 如果有人要確認這是真的,那么有一個答案可能會為我(和其他人)節省很多挫敗感。 它很舊,發布后沒有任何反饋: https://stackoverflow.com/a/45173822/7446564 。
感謝 Heroku 日志,我能夠得到實際的錯誤消息:
Django daphne asgi: Django can only handle ASGI/HTTP connections, not websocket
這個答案幫助我解決了這個問題: https://stackoverflow.com/a/59909118/7446564
總而言之:如果您在 Django 上啟動 websocket 時出錯,請確保您的.asgi
文件設置正確。 我還將在下面附上我的 Procfile,因為第一次設置它也是一個小過程,我希望它也可能有所幫助:
web: daphne my-app.asgi:application --port $PORT --bind 0.0.0.0 -v2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.