Chúng tôi đang cố gắng để các ổ cắm Socket.io hoạt động trong Internet Explorer 9 qua HTTPS/WSS. Các flashsockets hoạt động trên HTTP, nhưng HTTPS cho chúng ta vấn đề. Chúng tôi đang sử dụng phiên bản socket.io 0.8.7 và socket.io-client phiên bản 0.9.1-1.Lỗi HTTPS "chiều dài dữ liệu quá dài" trong s3_pkt.c từ Socket.io
Chúng tôi đang chạy máy chủ websocket của chúng tôi qua SSL trên cổng 443. Chúng tôi đã chỉ định vị trí tệp WebsocketMainInsecure.swf của chúng tôi (đây là các yêu cầu của miền chéo) ở vị trí chính xác và chúng tôi đang tải tệp trong swfobject được nhúng qua HTTPS.
Chúng tôi đã mở cổng 843 trong nhóm bảo mật của mình cho phiên bản EC2 của chúng tôi và tệp chính sách nguồn gốc chéo được hiển thị thành công qua HTTP. Dường như nó không hiển thị qua HTTPS (Chrome ném lỗi kết nối SSL).
Chúng tôi đã thử hai phiên bản của tệp WebsocketMainInsecure.swf. Đầu tiên là các tập tin được cung cấp bởi Socket.io, được xây dựng tắt của WebsocketMainInsecure.as mà không bao gồm các dòng
Security.allowInsecureDomain("*");
này ném lỗi SCRIPT16389: Unspecified error.
tại dòng WebSocket.__flash.setCallerUrl(location.href)
.
Chúng tôi figured nó là vì tệp SWF đã không được phép yêu cầu HTTPS, vì vậy chúng tôi thay thế các tập tin WebSocketMainInsecure.swf với một tìm thấy tại repo này: https://github.com/gimite/web-socket-js vì nó bao gồm các dòng
Security.allowInsecureDomain("*");
trong actionscript mã. Khi chúng ta sử dụng điều này, chúng ta thấy rằng kết nối flashsocket tiếp tục ngắt kết nối và kết nối lại trong một vòng lặp vô hạn. Chúng tôi đã theo dõi lỗi xuống tệp transport.js trong thư viện socket.io trong hàm onSocketError trên nguyên mẫu Transport. Nó ném lỗi:
[Error: 139662382290912:error:1408F092:SSL routines:SSL3_GET_RECORD:data length too long:s3_pkt.c:503:]
Chúng tôi thậm chí đã cố gắng cập nhật cả socket.io và socket.io-client lên phiên bản 0.9.6 và chúng tôi vẫn có những lỗi Access is denied
.
Lỗi này rất khó gỡ lỗi và giờ đây chúng tôi không biết cách làm cách nào để có được ổ flash hoạt động. Chúng tôi đang tự hỏi liệu nó có liên quan đến việc sử dụng phiên bản cũ hơn của socket.io hay có thể máy chủ tệp chính sách của chúng tôi không chấp nhận các yêu cầu HTTPS hoặc thậm chí là cách mà tệp WebSocketMainInsecure.swf từ web- socket-js github repo được xây dựng tương đối so với những gì socket.io-client mong đợi.
Điều này có thể được yêu cầu tốt hơn trong một diễn đàn khác. . . ServerFault có thể là một cược tốt. Đây là [một câu hỏi từ đó về một lỗi tương tự] (http://serverfault.com/questions/402152/error-in-openssl-s-client-data-length-is-too-long), và điều đó có thể cho bạn một số manh mối. – iND
@iND Thấy câu hỏi đó nhưng không chắc chắn nếu nó giúp tôi, bạn nghĩ sao? – user730569
Tôi có kiến thức rất hạn chế về tương tác máy chủ gỡ lỗi và điều này có thể không phải là diễn đàn với hầu hết các chuyên gia trong khu vực đó. Bạn có thể nhận được phản hồi tốt hơn trong các diễn đàn tập trung hơn. Tuy nhiên, nó ngụ ý rằng điều này có thể không phải là một vấn đề Flash. Thông báo lỗi giống nhau và số dòng chỉ cách xa dòng lỗi của bạn, vì vậy tôi sẽ nghĩ rằng các giải pháp - nếu bạn bỏ qua thông tin liên quan đến LDAP - có thể có một số vòng bi ở đây. – iND