サーバーに接続するためのTCP接続をオープンしていますが、net.createConnection(port, host)
を何度も呼び出さなくてもそのソケットをオープンにする方法が必要です。node.jsでtcpソケットを開いたままにしておきます
私が実装しようとしているのは、複数の接続を受け入れ、上記のように1つのソケットを通して要求を送るソケットサーバーです。次に、応答を正しいソケットに送る必要があります。しかし、私が抱えている唯一の問題は、私がリッスンしているサーバーコードの外に作成しようとしているオープンソケットを維持することです。私はソケットを作成するためにSingletonパターンとそれに近づいてきました
は...
var Singleton = (function() {
var socket = null;
function connectToHost(port, host) {
socket = net.createConnection(port, host);
return socket;
}
return {
connectToHost: connectToHost
};
})();
しかし、私が見ることができるものから
、イベント(「終了」)にそのソケットは、もはや書き込み可能ではありません。ソケットを再接続した場合。socket.on('end', function() {
socket = Singleton.connectToHost(port, host);
});
イベント( 'end')でも同じことが起こります。
1つのソケット接続を作成して保守するにはどうすればよいですか?
あなたが何を求めているのか分かりません。ソケットはポイントツーポイント接続です。接続ごとに1つずつ持っていなければならず、データが混在することはありません。 –
はい、それは正しいですが、私がしようとしているのは、複数のソケットをサーバーに接続し、各ソケットから別のサービスにリクエストを送る必要があることです(ただし、ここでは1つのソケットしか開くことができません)。サービスからの応答を受け取ったら、正しいソケットに戻す必要があります。これは、私が正しいソケットに応答をマップする必要がある場所です! – vitez
私は自分のサービスに接続する任意のソケットにリスティングしていますが、別のサーバーで開くために必要な1つのソケット接続に各要求を送る必要があります。これは私が問題を抱えているビットで、そのサーバーへの1つの接続を開いたままにしておくことです。着信トラフィックは問題ありません。 詳細情報が必要な場合はお知らせください。 ありがとうございます。 – vitez