Ho un client/server WebSocket che funziona perfettamente con Firefox e Chrome 18. Non funziona con Chrome 19 beta. Sospetto che sia dovuto a questo browser che ora utilizza un'estensione deflate-frame che il mio server non supporta.Impossibile ottenere la connessione websocket per funzionare in Chrome 19
Chrome 19 beta sta inviando questo nella sua stretta di mano: "Sec-WebSocket-Extensions: x-webkit-sgonfiare-frame"
ho il mio server di invio di nuovo: "SEC-websocket-Estensioni:"
Ma questo non è il modo corretto di rifiutare l'estensione o c'è qualcos'altro che non sto prendendo. Questa è l'unica cosa nella stretta di mano che è diversa da ciò che vedo provenire dai browser funzionanti.
Modifica: Ecco alcune informazioni aggiuntive. Queste sono le strette di mano catturate da Wireshark.
La stretta di mano con Firefox 12:
GET/chatserver HTTP/1.1
Host: (omesso per questo post)
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv : 12.0) Gecko/20.100.101 Firefox/12.0
Accept: text/html, application/xhtml + xml, application/xml; q = 0,9, /; q = 0,8
Accept-Language: it-it, it; q = 0.5
Accept-Encoding: gzip, d eflate
DNT: 1
Connection: keep-alive, aggiornamento
Sec-WebSocket-Versione: 13
origine: (omesso per questo post)
Sec-WebSocket-Key: 2TKm4ozUQdNP17Lobt7IBg ==
Pragma: no -cache
cache-Control: no-cache
aggiornamento: websocket
HTTP/1.1 101 protocolli di commutazione
aggiornamento: websocket
Connecti on: Aggiornamento
Sec-WebSocket-Accept: pSUB3BT9YUUd9n3mOeWY/1uVqJE =
La stretta di mano con Chrome 18:
GET/chatserver HTTP/1.1
Aggiornamento: websocket
collegamento: Aggiornamento
Host: (omesso per questo post)
Origine: (omessa per questo post)
Sec-WebSocket-Key: zuHLEC8pGvAMadarhCLXFA ==
Sec-WebSocket-Version: 13
HTTP/1.1 101 Protocolli di commutazione
Aggiornamento: websocket
Connection: Amplia
Sec-WebSocket-Accept: LMBSq6Bk9Kiv + zAbQlAL899pfzc =
La stretta di mano con Chrome 19:
GET/chatserver HTTP/1.1
Upgrade: websocket
Connessione: Upgrade
Host: (omesso per questo post)
Origine: (omesso per questo post)
Sec-WebSocket-Key: TbwnVcuUiqGgZn7hxvxzvQ ==
Sec-WebSocket-Versione: 13
Sec-websocket-Estensioni: x-webkit-sgonfiare-frame
HTTP/1.1 101 protocolli di commutazione
aggiornamento: websocket
collegamento: aggiornamento
Sec-WebSocket-Accept: D45BJ + Vfydy1Upcs3Hze/nuiaS8 =
sec-websocket-estensioni:
Tutte le risposte del server hanno terminazioni di riga e includono un \ r \ n extra alla fine del messaggio.
FF12 e Chrome18 funzionano - Chrome19 non funziona. In Chrome19, il pacchetto successivo alla risposta di handshake del server è FIN/ACK. La connessione è chiusa.
nb. Ho anche provato a utilizzare un trattino come valore Sec-WebSocket-Extensions ma non ha funzionato neanche.
Ciao Aaron, Per favore, puoi indicarmi dove e cosa cambiare? Ho esattamente lo stesso problema, sto usando lo stesso PHP-Websocket e improvvisamente ha smesso di funzionare con l'ultima versione di Chrome. –
@ClintonGreen: cerca la funzione di invio in Connection.php. Vedrai negli argomenti che $ masked è impostato su true. Questo argomento deve essere falso perché invii a funzionare correttamente in Chrome 19+. Scusa per il ritardo della risposta. – Aaron
grazie mille. Ci provo. Saluti –