浏览器反复创建与websocket的连接-socket.io

时间:2018-07-15 23:35:33

标签: node.js server socket.io

我正在创建一个socket.io和node.js服务器,它说有很多连接(每隔几分钟)。它正在创建一个新的ID,并且可能会干扰正在使用该ID的其他代码。

服务器代码:

var express = require('express');

var app = express();

var server = app.listen(3000);

app.use(express.static('public'));

var socket = require('socket.io');

var io = socket(server);

io.sockets.on('connection', newConnection);

function newConnection(socket) {
    console.log('new connection', socket.id);
}

在控制台中,运行时:

new connection 12naA3AGFfkjDPdnAAAM
new connection d_UeGFDAhsl401vFAAAN
new connection xBCBtiLMNOVX37-KAAAO
new connection RwmKzrVOGWRYeXNPAAAP
new connection 5NZ9WZ1-_k27brq5AAAQ
new connection QEbPMwPW69RYT15CAAAR
new connection 7qrEvvRYpAF0Yw1dAAAS
new connection -rV1aIgwrnPtZduyAAAT
new connection HUTJO5P1Z-Cg4iAjAAAU
new connection aPXmFpIu029CbUzZAAAV
new connection EkGupV-aaU5ePuCyAAAW
new connection E56CnnEXDryhFPGeAAAX

我根本不刷新页面。如何停止服务器多次连接?

1 个答案:

答案 0 :(得分:1)

我可能猜测socket.io无法检索存储在浏览器cookie存储中的套接字 id

当浏览器在101 Switching Protocols之后尝试重新连接时,它将发送cookie,但是后端无法从标头中解析它。结果,socket.io无法将浏览器提供的 id 内存中的 id 进行比较。

尝试附加cookie-parser

app.use(require('cookie-parser')());