2011-06-14 77 views
4

编辑Node.js连接错误,缺少属性?

解决方案:

访问您的IP在浏览器中后,你 “节点server.js” 来启动的连接。不知道为什么它有效,但它对我有用。

它是如何走过来的

Mkay ..作出重建切片(在slicehost托管,如果该事项),并重新安装节点,WebSocket的服务器我仍然有同样的问题后。我检查了正常请求是否正常工作(在浏览器中输入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: Cannot read property '_idleNext' of undefined at Object.append (_linklist.js:65:24) at Object.active (timers.js:136:9) at 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代码中的任何内容。一分钱给任何人可以告诉我为什么会发生这种情况!

+0

我有这个确切的问题。你是怎么碰到这个解决方法的?你不觉得它必须是我们的Node和websocket-server代码的版本不兼容吗? – jottos 2011-09-14 23:49:18

+0

是的,如果我不记得它错了,我有一个夜间建立的节点,显然是不稳定的。花了一段时间来弄清楚,因为我在安装Node的同时遵循了一个教程,并且不知道我得到了夜间版本。 所以这绝对是第一件要做的事情,如果您还没有解决您的问题 - 请检查您的Node版本。 :) – 2011-09-26 10:05:29

+0

您可以考虑发布_solution_作为答案,而不是将其编辑到问题中。 – 2011-12-30 12:21:48

回答

0

在“node server.js”启动连接后,在浏览器中访问您的IP。不知道为什么它有效,但它对我有用。

此外,请确保您有一个稳定版本的节点。问题出现时,我遇到了一个不稳定的问题。