Tôi hiện đang làm việc trên một dự án sử dụng các công nghệ được đề cập trong tiêu đề chủ đề.Django restframework, kênh Django, Ionic 2 - lỗi bắt tay websocket
Tôi nhận tất cả chạy từ trình duyệt (ứng dụng được lưu trữ trên heroku), nhưng khi tôi cố gắng kết nối với websockets từ ứng dụng Ionic 2 của mình, tôi luôn gặp lỗi khi bắt tay.
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
Bây giờ, một ý tưởng là, đó có thể là vấn đề về CORS. Vì vậy, tôi đã cài đặt django-cors-middleware
với hy vọng điều này có thể giải quyết được vấn đề - cũng không. Nhưng tôi nghĩ ứng dụng không thêm bất kỳ tiêu đề nào vào máy chủ Daphne.
Hiện tại tôi không còn ý tưởng nào nữa, nếu sự cố xảy ra trên máy khách hoặc ở phía máy chủ.
Có ai gặp phải sự cố tương tự không?
EDIT: Phát hiện ra rằng ổ cắm web và CORS không có liên quan gì đến nhau Why is there no same-origin policy for WebSockets? Why can I connect to ws://localhost? Vì vậy, tôi đoán là máy chủ có thể từ chối tiêu đề gốc do khách hàng gửi. Tôi sẽ xem liệu tôi có thể đặt tay lên các tiêu đề được gửi
một số chi tiết kỹ thuật khác trên websockets và sử dụng tiêu đề gốc http://security.stackexchange.com/questions/115716/is-the-origin-header-really-useful-for-securing-a-websocket – platzhersh