2012-05-10 77 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