套接字挂在dnode

时间:2012-05-10 19:28:51

标签: node.js socket.io dnode

我使用dnode开发了客户端/服务器双向通信 当客户端连接到服务器时,我保持连接,以便服务器可以在需要时使用此连接在客户端上调用方法。
有时连接似乎变为非活动状态,然后我需要手动重新启动客户端。连接是否可以通过某些特定选项保持活动状态(我虽然重新连接每3秒就可以做到这一点,但似乎并非如此)。

服务器就像

dnode(function (remote, conn) {

  conn.on('connect', function (){     // THIS METHOD IS NEVER CALLED !!! I DON'T KNOW WHY
    console.log("connection");
  });

  // Connection starts
  conn.on('ready', function () {
      // Keep remote in a hash for later usage
      ...
  });

  // Connection ends
  conn.on('end', function(){
     // Remove remote object from hash
     ...
  });

}).listen(5000);

客户:

// Define client functions
dnode(function (remote, conn) {
    // Ping
    this.ping = function (cb) {
        cb("pong");
    };

    // Other functions
    ...
}).connect(server, port, {'reconnect': 3000});

1 个答案:

答案 0 :(得分:1)

听起来你可以使用upnode,它会自动缓冲命令并重新连接丢弃的dnode连接。

我认为connect事件不会被触发,因为你在中设置它的函数是 dnode的'on connection'处理程序。

您可能还想查看我的enode库,它捆绑了upnode功能和IMO,使dnode api更直观。它还维护一个活动连接列表,更好地处理错误对象并简化断开和关闭。