2

ツイートをユーザーに「ストリーミング」する node.js アプリケーションがあります。現時点では、ハードコードされた文字列を Twitter で検索するだけですが、ユーザーが URL でこれを構成できるようにしたいと思います (たとえば、 にアクセスして/?q=stackoverflow)。

現時点では、私のコードは次のようになります。

app.get('/', function (req, res) {

    // page rendering skipped

    io.sockets.on('connection', function (socket) { 
        twit.stream('user', {track: 'stackoverflow'}, function(stream) {
            stream.on('data', function (data) {
                socket.volatile.emit('tweet', data);
            }
        });
    });
});

問題は、各ユーザーが異なるツイート ストリームを同時に表示できるようにするにはどうすればよいかということです。現時点では、1 つのブラウザー タブでは問題なく動作しますが、2 つ目のブラウザー タブを開くとすぐに失敗します。エラーは socket.io のかなり深いところにあります。私はそれを悪用していますか?

私はまだsocket.ioについて完全に理解していないので、それが問題になる可能性があります。

前もって感謝します!

4

1 に答える 1

0

新しいリクエストが来るたびに、接続コールバックを io.sockets.on で再定義しています。io オブジェクトの初期化ステートメントの後に、そのコード ブロックを app.get の外に移動する必要があります。

于 2012-05-05T18:18:29.327 に答える