sto attualmente lavorando con WebSockets e un server PHP: funziona molto bene con Google Chrome e Opera, ma non con Firefox 6.Javascript e WebSockets: utilizzando il protocollo specifico
Penso che sia a causa della versione del protocollo quest'ultimo utilizza: vedo da qualche parte che utilizza la settima versione, mentre è una versione precedente per Google Chrome e Opera.
Così, ho modificato il mio codice del server per gestire questa nuova versione: hashing il tasto sicuro con 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 e altri animali, Firefox riesce a connettersi. Ma se un altro cliente vuole connettersi (anche un altro Firefox), il primo con Firefox si deconnetterà da solo.
ho visto che di buffer ricevuto da socket_recv() è vuota o hash ...
così ho deciso di saltare l'idea di gestire il protocollo utilizzato da Firefox 6 (non ci sono alcuna documentazione su Internet ... !): Penso che potrebbe essere più semplice specificare il protocollo da utilizzare direttamente in JavaScript.
Su this page dicono che siamo in grado di scrivere questo:
var mySocket = new WebSocket("http://www.example.com/socketserver", "my-custom-protocol");
Ma cosa dovremmo scrivere invece di "my-custom-protocollo" al fine di utilizzare il protocollo gestito da Google Chrome e Opera?
Grazie in anticipo!
C'è la versione 'hybi-00' che è anche chiamata' hixie-76' e include le due chiavi binarie. C'è anche il nuovo 'hybi-07' che usa quella chiave sicura che hai postato. Dovresti generare un handshake corretto a seconda della versione richiesta * dell'handshake *. Poiché entrambe le versioni utilizzano diversi nomi di intestazione per le chiavi, dovrebbe essere possibile. – pimvdb
Grazie per la tua risposta! Così ho provato questo: 'var mySocket = new WebSocket (" http://www.example.com/socketserver "," hybi-00 ");' ma l'intestazione inviata da Firefox è sempre la stessa ... L'unica differenza è che ora c'è _Sec-WebSocket-Protocol: hybi-00_ nell'intestazione, ma utilizza ancora la settima versione. – KorHosik
Penso di non essere stato completamente chiaro. Ogni browser invia una versione e non è possibile controllarla. Sul server, tuttavia, è possibile verificare quale versione è stata inviata e rispondere in modo appropriato (ovvero la risposta corretta all'handshake). – pimvdb