0

私はこれを考えすぎていることを知っています...しかし、答えはクリックしないことです。

私は 2 つのサーバーを持っています。1 つは TCP ソケット サーバーで、もう 1 つは SockJS サーバーです。両方の接続イベントを 1 つのスーパー イベントに結合する必要があります。

async.parallel({
  tcp: function (done) {
    self._tcp = net.createServer(function (sock) {
      done(null, sock);
    });
  },
  ws: function (done) {
    self._ws = sockjs.createServer(function (sock) {
      done(null, sock);
    });
  }
}, function (err, results) {
   // This never gets fired!!!
   // But I'd like to do stuff here with both 
   // socket instances – you know, like piping =)
});

もともと、TCP 接続を WS 接続内に入れ子にしていましたが、厳格な接続シーケンスが必要なため、問題があることがわかっています。本当に必要なのは、両方の接続が確立され、それぞれのsockインスタンスにアクセスできるときに発生するイベントです。脳をジョギングするのに役立ちます。

4

1 に答える 1

1

これは非常に単純かもしれませんが、sockjs のドキュメントを見ると、createServer() のコールバック関数がないため、並列関数のコールバックをループバックすることはありません。

done(null, sock); を呼び出してみてください。socket.createServer(); を実行した直後 これで準備完了です。

ドキュメント: https://github.com/sockjs/sockjs-node

于 2014-02-03T02:54:13.563 に答える