我有一個使用express和socket.io的nodeJS應用程序。我想泄露一些代碼,以便它只在我服務的一個頁面上運行。爲了做到這一點,我使用express來聽取請求並提供html頁面作爲響應。在nodeJS中使用express和socket.io時的重複值
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);
});
}
當我使用socket.handshake.url我得到一個唯一的URL(/socket.io/1/?t=128438943)而不是/路徑 – vcazan
對不起,這似乎是不正確的。我已經修改了答案。 – hexacyanide