Веб-сокет не работает в Firefox 12
Firefox не может установить соединение с сервером по адресу ws://192.168.0.155:5555/socket/server3.php.
$(document).ready(function(){
if(!("WebSocket" in window)){
alert('not available');
}else{
_init();
}
});
function _init(){
var websocket;
var host = 'ws://192.168.0.155:5555/socket/server3.php';
try{
websocket = new WebSocket(host);
websocket.onopen = function(evt){ onOpen(evt); };
websocket.onclose = function(evt) { onClose(evt); };
websocket.onmessage = function(evt) { onMessage(evt); };
}catch(exception){
alert(exception);
}
}
function onOpen(evt){
$('.logger_screen').append('Connected');
}
function onClose(evt){
$('.logger_screen').append('Disconnected');
}
function onMessage(evt){
$('.logger_screen').append(evt.data);
}
что не так с моим кодом?
1 ответ
Из одного из ваших комментариев я думаю, что вы используете phpwebsocket на сервере. Похоже, что этот проект не поддерживается и не обновляется с изменениями в спецификации протокола websocket.
Используются две несовместимые версии протокола websocket. Safari по-прежнему использует оригинальный (ныне устаревший) вариант Hixie, который реализует phpwebsocket; Firefox, IE10 и Chrome используют более новый вариант Hybi.
Чтобы проверить это, вы можете попробовать использовать Safari для выполнения вашего JavaScript.
Я не уверен, какие варианты у вас есть, если вы хотите использовать PHP на сервере и должны поддерживать больше, чем Safari. Я вижу один сервер с открытым исходным кодом, который должен поддерживать все браузеры, перечисленные выше. В качестве альтернативы, если вы хотите попробовать написать свой собственный сервер, здесь, под тегом websocket, есть немало вопросов, на которые вы можете черпать вдохновение.