2012-05-10 43 views
1

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

服务器就像是

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

听起来像是你可以用upnode做,其缓冲命令,并重新连接自动删除dnode连接你。

我不认为connect活动预计将被解雇,因为你设置它里面功能是 dnode的“关于连接”处理程序。

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

+1

我会加快upnode的一个快速修复,但将明确重建使用enode的东西!盖伊,你的自由体验棒极了。 – Luc

+0

谢谢!如果您有任何问题,请告诉我! – timoxley