Lasciami provare a spiegare le diverse percentuali di successo che potresti aver riscontrato. Sebbene il protocollo HTML5 Web Socket non sia consapevole dei server proxy e dei firewall, presenta un handshake compatibile con HTTP in modo che i server HTTP possano condividere le porte HTTP e HTTPS predefinite (80 e 443) con un gateway o server Web Sockets.
Il protocollo Web Socket definisce un prefisso ws: // e wss: // per indicare rispettivamente una connessione WebSocket e una connessione WebSocket Secure. Entrambi gli schemi utilizzano un meccanismo di aggiornamento HTTP per l'aggiornamento al protocollo Web Socket. Alcuni server proxy sono innocui e funzionano bene con Web Sockets; altri impediranno il corretto funzionamento dei Web Sockets, causando il fallimento della connessione. In alcuni casi potrebbe essere necessaria una configurazione aggiuntiva del server proxy e alcuni server proxy potrebbero dover essere aggiornati per supportare Web Sockets.
Se il traffico WebSocket in chiaro scorre attraverso un esplicito o un server proxy trasparente sulla sua strada il server WebSocket, quindi, se il server proxy si comporta come dovrebbe, il collegamento è quasi certamente destinato a fallire oggi (in futuro , i server proxy possono diventare consapevoli di Web Socket). Pertanto, le connessioni WebSocket non crittografate devono essere utilizzate solo nelle topologie più semplici.
Se viene utilizzata la connessione WebSocket crittografata, l'utilizzo di Transport Layer Security (TLS) nella connessione Web Sockets Secure assicura che venga emesso un comando HTTP CONNECT quando il browser è configurato per utilizzare un server proxy esplicito. Questo imposta un tunnel che fornisce comunicazione TCP end-to-end di basso livello attraverso il proxy HTTP, tra il client Web Sockets Secure e il server WebSocket. Nel caso di server proxy trasparenti, il browser non è al corrente del server proxy, quindi non viene inviato alcun CONNECT HTTP.Tuttavia, poiché il traffico del wire è crittografato, i server proxy trasparenti intermedi possono semplicemente consentire il traffico crittografato, quindi ci sono molte più possibilità che la connessione WebSocket abbia successo se si utilizza Web Sockets Secure. L'uso della crittografia, ovviamente, non è gratuito, ma spesso offre il più alto tasso di successo.
Un modo per vederlo in azione è scaricare e installare Kaazing WebSocket Gateway - un gateway WebSocket ottimizzato per proxy, che fornisce supporto WebSocket nativo e un'emulazione completa dello standard per i browser meno recenti.
fonte
2010-02-18 19:03:25
Non lo fanno? Aaargghh! e ho continuato a chiedermi perché il mio codice non ha funzionato! Ho perso un'intera mattinata ma ora sembra funzionare perché ho rimosso il proxy. Grazie per aver chiesto questa domanda! – Tieme
@Tieme dimostra che le domande sono altrettanto importanti delle risposte –
In effetti lo fanno! – Tieme