我有一个使用 express 和 socket.io 的 nodeJS 应用程序。我想隔离一些代码,以便它只在我服务的一页上运行。为此,我使用 express 来监听请求并提供一个 html 页面作为响应。
app.get('/archive', function(request, response) {
response.sendfile(__dirname + "/views/table.html");
}
我还有一个 socket.io 函数,用于侦听数据并将其发送到 html 页面。
io.sockets.on('connection', function(socket) {
channel.subscribe('cheat', function(message) {
socket.emit('message', message);
});\
当代码像这样时,一切都运行良好,但是一旦我尝试将 socket.on 函数放入 app.get 函数中,我就会遇到问题。第一个请求完美运行,但是当页面刷新时,所有数据都会重复。第一次是 x2,然后是 x3,然后是 x4,依此类推。有谁知道为什么会这样?
这是我的最终代码的样子:
app.get('/archive', function(request, response) {
response.sendfile(__dirname + "/views/table.html");
io.sockets.on('connection', function(socket) {
channel.subscribe('cheat', function(message) {
socket.emit('message', message);
});
}