我們試圖讓Socket.io flashsockets通過HTTPS/WSS在Internet Explorer 9中工作。閃存卡通過HTTP工作,但HTTPS給我們帶來了問題。我們使用socket.io版本0.8.7和socket.io-client版本0.9.1-1。來自Socket.io的s3_pkt.c中的HTTPS錯誤「數據長度太長」
我們正在通過端口443上的SSL運行我們的websocket服務器。我們已經在正確的位置指定了我們的WebsocketMainInsecure.swf文件的位置(這些是跨域ws請求),並且我們正在加載文件在swfobject中嵌入HTTPS。
我們爲我們的EC2實例在我們的安全組中打開了端口843,並且成功地通過HTTP呈現了跨源策略文件。它似乎無法通過HTTPS進行呈現(Chrome會引發SSL連接錯誤)。
我們已經嘗試了兩個版本的WebsocketMainInsecure.swf文件。第一,不包括線
Security.allowInsecureDomain("*");
這引發錯誤SCRIPT16389: Unspecified error.
在WebSocket.__flash.setCallerUrl(location.href)
線由Socket.io,這是建立關WebsocketMainInsecure.as提供的文件。
我們估計,這是因爲SWF文件是不允許HTTPS請求,所以我們替換爲一個在此回購發現WebSocketMainInsecure.swf文件:,因爲它包括在動作的
Security.allowInsecureDomain("*");
線碼。當我們使用這個時,我們看到flashsocket連接保持斷開連接並以無限循環重新連接。我們將錯誤追蹤到Transport原型上onSocketError函數的socket.io庫中的transport.js文件。它引發錯誤:
[Error: 139662382290912:error:1408F092:SSL routines:SSL3_GET_RECORD:data length too long:s3_pkt.c:503:]
我們甚至試圖更新都socket.io和socket.io,客戶端0.9.6版本,我們仍然得到了Access is denied
錯誤。
這個錯誤一直非常難以調試,現在我們對如何讓FlashSocket工作不知所措。我們想知道它是否可能與使用舊版本的socket.io有關,或者我們的策略文件服務器不接受HTTPS請求,或者甚至可能來自Web的WebSocketMainInsecure.swf文件 - socket-js github repo是根據socket.io-client期望的內容構建的。
這可能會更好地問在不同的論壇。 。 。 ServerFault可能是一個不錯的選擇。這裏是[從那裏的一個類似的錯誤](http://serverfault.com/questions/402152/error-in-openssl-s-client-data-length-is-too-long),這可能會給你有些線索。 – iND 2012-07-20 03:55:44
@iND看到這個問題,但不知道它是否對我有幫助,您怎麼看? – user730569 2012-07-20 07:37:55
我對調試服務器交互的知識非常有限,這可能不是該領域專家最多的論壇。您可以在更專注的論壇中獲得更好的迴應。但是,這意味着這可能不是Flash問題。錯誤消息是相同的,行號只有一個距離你的錯誤行,所以我會認爲解決方案 - 如果你忽略LDAP相關信息 - 可能在這裏有一些軸承。 – iND 2012-07-20 12:49:47