Web套接字在Firefox 12中不起作用

时间:2012-06-01 06:34:35

标签: php websocket php-socket

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 个答案:

答案 0 :(得分:2)

根据您的一条评论,我认为您在服务器上使用phpwebsocket。该项目似乎没有得到维护,并且没有及时更新websocket协议规范。

有两个不兼容的websocket协议版本正在使用中。 Safari仍然使用phpwebsocket实现的原始(现已弃用)Hixie变体; Firefox,IE10和Chrome使用较新的Hybi变体。

要对此进行测试,您可以尝试使用Safari来执行您的javascript。

如果您想在服务器上使用PHP并且需要支持多于Safari,我不确定您有哪些选项。我可以看到一个应该支持上面列出的所有浏览器的open source server。或者,如果您想尝试编写自己的服务器,可以在websocket标签下发布相当多的问题,您可以从中获取灵感。