2012-05-10 10 views
1

私はdnodeを使ってクライアント/サーバの双方向通信を開発しました。
クライアントがサーバーに接続するとき、サーバーはこの接続を使用して、必要なときにクライアント上のメソッドを呼び出すことができるように接続を維持します。
接続が非アクティブになっているようで、クライアントを手動で再起動する必要があります。いくつかの特定のオプションを使用して接続を有効にできますか? (私は3秒ごとに再接続するが、トリックを行うが、そうではないようだが)。あなたがupnodeで行うことができますようにソケットがdnodeでハングする

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

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

答えて

1

が鳴り、コマンドや再接続が自動的に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); 

のようなクライアントです。

の中に設定した機能がのdnodeの「接続中」ハンドラであるため、connectイベントが発生するとは思われません。

アップノード機能とIMOをバンドルしているenodeライブラリをチェックして、dnode APIをより直観的にすることもできます。また、アクティブな接続のリストを保持し、エラーオブジェクトをよりよく処理し、切断とクローズを簡素化します。

+1

私は素早い修正のためにupnodeを追加しますが、enodeを使って明確に再構築します!ガイ、あなたのライブラリーは素晴らしいです。 – Luc

+0

ありがとう!ご質問がある場合はお知らせください。 – timoxley

関連する問題