3

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);
   }

我的代码有问题吗??

4

1 回答 1

2

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

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

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

如果您想在服务器上使用 PHP 并且需要支持的不仅仅是 Safari,我不确定您有哪些选择。我可以看到一台开源服务器应该支持上面列出的所有浏览器。或者,如果您想尝试编写自己的服务器,这里有很多问题发布在 websocket 标签下,您可以从中获得灵感。

于 2012-06-01T12:36:03.620 回答