我目前正在使用主題標題中提到的技術進行項目工作。Django restframework,Django頻道,Ionic 2 - websocket握手錯誤
我從瀏覽器(應用程序託管在heroku上)得到了所有這些,但是當我嘗試從我的Ionic 2應用程序連接到websockets時,我總是遇到一個建立握手的錯誤。
2016-09-17T15:02:03.200133+00:00 app[web.1]: 2016-09-17 15:02:03,199 DEBUG Connection http.response!uvRVDyvolYEG did not get successful WS handshake.
2016-09-17T15:02:03.200498+00:00 app[web.1]: 2016-09-17 15:02:03,200 DEBUG WebSocket closed before handshake established
2016-09-17T15:02:03.169206+00:00 heroku[router]: at=info method=GET path="/1/" host=musicmashup-jukebox.herokuapp.com request_id=c46960d7-bb8f-45bf-b8be-5a934c771d96 fwd="212.243.230.222" dyno=web.1 connect=0ms service=7ms status=400 bytes=74
現在有一個想法是,它可能是一個CORS問題。所以我安裝了django-cors-middleware
,希望這可以解決問題 - 事實並非如此。 但我認爲該應用程序根本不會向Daphne服務器添加任何標題。
此刻我不知道了,如果問題出現在客戶端或服務器端。
有沒有人遇到過類似的問題?
編輯: 發現原來的WebSockets和CORS沒有什麼做相互Why is there no same-origin policy for WebSockets? Why can I connect to ws://localhost? 所以我的猜測是,該服務器可以拒絕客戶端發送的Origin標。我會看看我是否可以把我的手放在要發送的標題上
關於websockets和原始頭文件的使用的一些技術細節http://security.stackexchange.com/questions/115716/is-the-origin-header-really-useful-for-securing-a-websocket – platzhersh