【发布时间】:2017-01-25 16:56:15
【问题描述】:
我目前正在使用线程标题中提到的技术进行一个项目。
我是从浏览器中运行的(应用程序托管在 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? 所以我的猜测是,服务器可能会拒绝客户端发送的原始标头。我会看看我是否可以得到正在发送的标题
【问题讨论】:
-
更多关于 websockets 的技术细节和源头的使用 security.stackexchange.com/questions/115716/…
标签: django ionic-framework django-rest-framework django-cors-headers django-channels