Node.js连接错误,属性丢失?

4

编辑

解决方案:

在你使用“node server.js”启动连接之后,通过浏览器访问你的IP。不知道为什么,但这对我有效。

问题产生的原因

好吧...在重建切片(如果有必要,托管在slicehost上)并重新安装node和websocket-server之后,我仍然遇到了同样的问题。我检查了一下正常请求是否有效(在浏览器中输入IP),结果是有效的。它似乎也启动了套接字连接,所以现在我也可以通过它们进行连接。


我正在尝试使用node.js和websocket-server模块连接到套接字服务器。

服务器端看起来像这样:

   var server = ws.createServer();
   server.listen(80);

   server.addListener("request", function(req, res) {

   res.writeHead(200, {
    "Content-Type": "text/plain"
   });
   res.write("Hey! This is totally not the site you planned to visit.");
   res.end();
   });

  server.addListener("connection", function(conn) {

   conn.addListener("readyStateChange", function(readyState) {

   });
   conn.addListener("open", function() {

   });
   conn.addListener("close", function() {

   });
   conn.addListener("message", function(message) {
    server.broadcast(conn._id + ": "+message);
   });
 });

标准流程。当客户端尝试像这样连接时...

   if ( window["WebSocket"] ) {

            connection = new WebSocket("ws://[my IP]:80/");
            connection.onopen = function( event ) {
                console.log("connection open");
            }

            connection.onclose = function( event ) {
                console.log("connection closed");
            }

            connection.onerror= function( event ) {
                console.log("connection error");
            }

            connection.onmessage = function( event ) {
                console.log(event.data);
            };
        }

我遇到了以下错误:

_linklist.js:65

item._idleNext = list._idleNext;

TypeError: 无法读取未定义的属性'_idleNext' 在对象附加 (_linklist.js:65:24) 在活动状态 (timers.js:136:9) 在Socket._writeOut (net.js:461:10)

at Socket.write (net.js:378:17)
at Object.draft76 ([my dir]/npm/node_modules/websocket-server/lib/ws/connection.js:401:28)
at new Connection ([my dir]npm/node_modules/websocket-server/lib/ws/connection.js:165:22)
at Server.<anonymous> ([my dir]npm/node_modules/websocket-server/lib/ws/server.js:72:7)
at Server.emit (events.js:81:20)
at Socket.<anonymous> (http.js:1034:14)
at Socket._onReadable (net.js:684:27)

它曾经运行了一段时间(这可能有些奇怪),然后每次我尝试连接时都会出现这个消息。我没有更改node.js或websocket-server的任何代码。请告诉我为什么会出现这种情况!


我也遇到了这个问题。你是怎么发现这个解决方法的?难道不觉得这可能是我们的Node版本与websocket-server代码不兼容所致吗? - jottos
是的,如果我没有记错的话,我安装了一个夜间构建版本的Node,显然不稳定。花了我一段时间才弄清楚,因为我在安装Node时遵循了教程,不知道我得到了夜间版本。所以,这肯定是要做的第一件事,如果您仍然没有解决问题-检查您的Node版本。 :) - Oskar Eriksson
你可以考虑将“解决方案”作为答案发布,而不是将其编辑到问题中。 - Octavian Helm
1个回答

0

在执行 "node server.js" 启动连接后,通过浏览器访问您的 IP 地址。我不知道为什么它能正常工作,但对我来说确实如此。

另外,请确保您安装了稳定版本的 Node。当问题出现时,我的 Node 版本是不稳定的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接