我使用 Node 监听 localhost 端口 8000 创建了一个服务器。已验证其运行正常,但我无法访问客户端上的 WebSocket(Chrome 5)。尝试了各种 Git 存储库、节点 + websocket、socketIO、文章等的几种实现。没有。
无端口冲突(sudo lsof -i tcp);
尝试过 server.listen(8000, "*");
指向 ws = new WebSocket("ws://:8000/test");
Debian 莱尼、Apache22
节点 v0.1.98-31-g1c6671a
我认为可能与网址重写有冲突。或者可能的权限。有任何想法吗?
我在 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 以及文件夹“服务器”和“客户端”。现在根据自述文件在控制台中启动脚本(对我来说命令是: 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 就工作得很好了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)