Stiamo provando a far funzionare Socket.io flashsockets in Internet Explorer 9 su HTTPS/WSS. I flashs funzionano su HTTP, ma HTTPS ci sta dando problemi. Stiamo usando la versione 0.8.7 di socket.io e la versione 0.9.1-1 di socket.io-client.Errore HTTPS "lunghezza dati troppo lunga" in s3_pkt.c da Socket.io
Stiamo eseguendo il nostro server WebSocket via SSL sulla porta 443. Abbiamo specificato la posizione del nostro file WebsocketMainInsecure.swf (si tratta di richieste ws interdominio) nella posizione corretta e stiamo caricando il file nello swfobject incorporato su HTTPS.
Abbiamo aperto la porta 843 nel nostro gruppo di sicurezza per la nostra istanza EC2 e il file di criteri di origine incrociata viene reso correttamente tramite HTTP. Non sembra eseguire il rendering su HTTPS (Chrome genera un errore di connessione SSL).
Abbiamo provato due versioni del file WebsocketMainInsecure.swf. Il primo è il file fornito da Socket.io, che è costruito al largo di WebsocketMainInsecure.as che non include la linea
Security.allowInsecureDomain("*");
Questo genera l'errore SCRIPT16389: Unspecified error.
alla linea WebSocket.__flash.setCallerUrl(location.href)
.
abbiamo capito che era perché il file SWF non è stato permettendo richieste HTTPS, quindi abbiamo sostituito il file WebSocketMainInsecure.swf con quella che si trova in questa repo: https://github.com/gimite/web-socket-js perché include la linea
Security.allowInsecureDomain("*");
in ActionScript codice. Quando abbiamo usato questo, abbiamo visto che la connessione flash-socket continuava a disconnettersi e ricollegarsi in un ciclo infinito. Abbiamo rintracciato l'errore nel file transport.js nella libreria socket.io nella funzione onSocketError del prototipo Transport. Esso genera l'errore:
[Error: 139662382290912:error:1408F092:SSL routines:SSL3_GET_RECORD:data length too long:s3_pkt.c:503:]
Abbiamo anche provato l'aggiornamento sia socket.io e socket.io-client alla versione 0.9.6 e abbiamo ancora ricevuto l'errore Access is denied
.
Questo errore è stato molto difficile eseguire il debug, e ora non sappiamo come far funzionare i flashsocket. Ci chiediamo se potrebbe avere a che fare con l'utilizzo di una versione precedente di socket.io, o forse che il nostro file server dei criteri non accetta richieste HTTPS, o forse persino il modo in cui il file WebSocketMainInsecure.swf dal web- socket-js github repo è stato costruito relativamente a ciò che si aspetta socket.io-client.
Questo potrebbe essere meglio chiesto in un forum diverso. . . ServerFault potrebbe essere una buona scommessa. Ecco [una domanda da lì su un errore simile] (http://serverfault.com/questions/402152/error-in-openssl-s-client-data-length-is-too-long), che potrebbe dare qualche indizio – iND
@iND Ho visto questa domanda ma non sono sicuro se mi aiuta, cosa ne pensi? – user730569
Ho una conoscenza molto limitata del debugging dell'interazione con il server, e questo potrebbe non essere il forum con il maggior numero di esperti in quell'area. È possibile ottenere risposte migliori nei forum più mirati. Tuttavia, ciò implica che questo potrebbe non essere un problema Flash. Il messaggio di errore è lo stesso, e il numero di riga è solo uno lontano dalla tua riga di errore, quindi penserei che le soluzioni - se ignori le informazioni relative a LDAP - potrebbero avere qualche rilevanza qui. – iND