我使用端口8000,localhost上的Node侦听创建了一个服务器。验证它运行正常,但我无法访问客户端上的WebSocket(Chrome 5)。尝试了各种Git repos,node + websocket,socketIO,文章等的几个实现。没什么。
没有端口冲突(sudo lsof -i tcp); 尝试过server.listen(8000,“*”); 指向ws = new WebSocket(“ws://:8000 / test”); Debian Lenny,Apache22 节点v0.1.98-31-g1c6671a
我在想与url重写可能存在冲突。或者可能的权限。有什么想法吗?
答案 0 :(得分:0)
我在Ubuntu 10.04 LTS 32位和Chrome 5.0.375.125上遇到了类似的问题,发现它是Chrome中的一个错误。 以下是测试和解决问题的方法。我使用WebSocket和PHP以及后来的Node.JS:
PHP:从http://net.tutsplus.com/tutorials/javascript-ajax/start-using-html5-websockets-today/下载教程文件,并将其解压缩到webroot中名为“socket”的文件夹中。此文件夹现在包含readme.txt以及文件夹“server”和“client”。现在根据自述文件在控制台中启动脚本(对我来说,命令是:sudo php -q /var/www/socket/server/startDaemon.php)。它应该打印'开始侦听套接字'。 。保持控制台窗口打开。现在转到Chrome中的localhost / socket / client / client.php。它应该说'套接字状态0',如果你在控制台中查看,你看不到任何新消息(没有建立连接)。
现在就是诀窍:打开第二个Chrome标签。将此选项卡指向相同的url:localhost / socket / client / client.php(它还表示'套接字状态0')。然后再关闭它。您的原始选项卡现在应该显示“套接字状态:1(打开)”,并在控制台中看到握手已完成。 WebSocket现在可以运行。
我重复了与上面相同的技巧,但这次使用Node.JS和Socket.IO脚本。 Socket.IO-node(github.com/LearnBoost/Socket.IO-node)中包含的聊天示例具有相同的问题,挂在“正在连接...”阶段。打开第二个选项卡到聊天框,然后再次关闭它解决了问题,聊天框继续正常加载。 Node.JS服务器在控制台中确认了连接。从那以后,WebSocket工作正常。