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


Web socket not working in 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);
   }

我的代码有问题??

从您的一条评论中,我认为您在服务器上使用了phpwebsocket。 这个项目似乎没有得到维护,也没有跟上websocket协议规范的变化。

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

为了测试这一点,你可以尝试使用 Safari 来执行你的 JavaScript。

我不确定如果您想在服务器上使用 PHP 并且需要支持比 Safari 更多的内容,您有什么选择。 我可以看到一个开源服务器,它应该支持上面列出的所有浏览器。 或者,如果你想尝试编写自己的服务器,这里有很多问题,在websocket标签下,你可以从中得到启发。