В настоящее время я работаю с WebSockets и сервером PHP: это очень хорошо работает с Google Chrome и Opera, но не с Firefox 6.JavaScript и WebSockets: с использованием специального протокола
Я думаю, что это связано с версией протокола это последнее использует: я вижу где-то, что он использует седьмую версию, в то время как он более старый для Google Chrome и Opera.
Итак, я изменил мой код сервера, чтобы управлять этой новой версией: путем хэширования защищенного ключа с 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 и другие материалы, Firefox успешно подключиться. Но если другой клиент хочет подключиться (даже другой Firefox), первый с Firefox деконнектирует сам.
Я видел, что буфер, полученный socket_recv() либо пусто, либо хэшируются ...
Так что я решил пропустить идею управления протоколом, используемый Firefox 6 (нет никакой документации в Интернете ... !): Я думаю, было бы проще указать протокол для использования непосредственно в JavaScript.
На this page они говорят, что мы можем написать это:
var mySocket = new WebSocket("http://www.example.com/socketserver", "my-custom-protocol");
Но что мы должны писать вместо «мой обычай-протокол» для того, чтобы использовать протокол под управлением Google Chrome и Opera?
Заранее благодарен!
Существует версия 'hybi-00', которая также называется' hixie-76' и включает в себя два двоичных ключа. Существует также новый 'hybi-07', который использует этот безопасный ключ, который вы разместили. Вам нужно будет создать правильное рукопожатие, в зависимости от того, в какой версии находится запрос * квитирования. Поскольку обе версии используют разные имена заголовков для ключей, это должно быть возможно. – pimvdb
Спасибо за ваш ответ! Поэтому я пробовал это: «var mySocket = new WebSocket (« http://www.example.com/socketserver »,« hybi-00 ») ;, но отправка заголовков Firefox остается неизменной ... Единственное отличие теперь в том, что в заголовке есть _Sec-WebSocket-Protocol: hybi-00_, но он по-прежнему использует седьмую версию. – KorHosik
Я думаю, что я не был полностью ясен. Каждый браузер отправляет любую версию, и вы не можете ее контролировать. На сервере, однако, вы можете проверить, какая версия была отправлена, и отреагировать соответствующим образом (т. Е. Правильный ответ подтверждения). – pimvdb