Ho capito. Risulta che il codice che ho originariamente adottato mise un singolo carattere NULL dopo le newline seguendo le intestazioni di risposta handshake e non l'avevo notato. Sembra che a) il browser sposti tutti i messaggi websocket ricevuti attraverso un buffer di caratteri che lascia il singolo carattere NULL in primo piano una volta che l'autenticazione-risposta è stata elaborata, e b) non è stato un problema fino a quando il messaggio -next- è stato ricevuto.
flusso:
1) browser (Chrome e Firefox) riceve una stretta di mano-risposta con un NULL in più alla fine.
2) Il browser approva la risposta dell'handshake.
3) Il browser invia un messaggio (in questo caso, con un codice "testo", non che ciò sia necessariamente importante) al server.
4) Il server decodifica correttamente i frame.
5) Il server invia un messaggio indietro attraverso la sessione websocket stabilita.
6) Il client si lamenta di avere un frame di continuazione imprevisto.
In alcune condizioni, credo di essere stato in grado di manipolare il messaggio per sopprimere un errore dal browser, ma non ho ancora ricevuto il messaggio del server nel browser.
Come esempio di quanto sopra, credo che, in origine, il server stava inviando una risposta automatica di testo di "risposta" e ha ricevuto il messaggio sopra. In seguito l'ho cambiato in "1234" e ho ancora ricevuto il messaggio sopra. Tuttavia, l'ho modificato in "123" e non ho più ricevuto l'errore, ma non ho ancora ricevuto un evento messaggio nel Javascript.
Dustin Oprea
fonte
2012-05-08 14:00:33
L'output di registrazione sembra corretto. Puoi pubblicare il tuo codice per favore? – simonc