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);
            }
        });
    });
});

问题是,如何让每个用户可以同时看到不同的推文流?目前,它在单个浏览器选项卡中运行良好,但一旦打开第二个选项卡,它就会崩溃 - 并且错误在 socket.io 内部相当深。我在滥用它吗?

我还没有完全理解socket.io,所以这可能是问题所在。

提前致谢!

4

1 回答 1

0

每次有新请求进入时,您都在使用 io.sockets.on 重新定义连接回调 - 您应该在 io 对象的初始化语句之后将该代码块移到 app.get 之外。

于 2012-05-05T18:18:29.327 回答