我正在创建一个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
我根本不刷新页面。如何停止服务器多次连接?
答案 0 :(得分:1)
我可能猜测socket.io
无法检索存储在浏览器cookie存储中的套接字 id 。
当浏览器在101 Switching Protocols
之后尝试重新连接时,它将发送cookie,但是后端无法从标头中解析它。结果,socket.io无法将浏览器提供的 id 与内存中的 id 进行比较。
尝试附加cookie-parser:
app.use(require('cookie-parser')());