我目前正在开发一个使用线程标题中提到的技术的项目。
我从浏览器中运行了这一切(该应用程序托管在 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没有任何关系为什么WebSockets没有同源策略?为什么我可以连接到 ws://localhost? https://stackoverflow.com/questions/23674199/why-is-there-no-same-origin-policy-for-websockets-why-can-i-connect-to-ws-loc#comment36372038_23674863所以我的猜测是,服务器可能会拒绝客户端发送的原始标头。我将看看是否可以获取正在发送的标头
此问题已在 Daphne v.1.0.3 中修复https://github.com/django/daphne/commit/07dd777ef11f5091931fbb22bdacb9e4aefea7da https://github.com/django/daphne/commit/07dd777ef11f5091931fbb22bdacb9e4aefea7da
您还需要更新频道和 asgi-redis(如果使用)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)