socket.io为每个连接创建多个套接字

时间:2017-08-11 06:14:48

标签: javascript node.js socket.io

有时,当服务器处于负载之下时,当有人连接到页面时,会创建多个套接字,如果它非常滞后,则可能永远不会连接,而每秒重复插入一次额外的套接字,无穷大直到停止。知道为什么会这样做吗?

服务器端代码:

var express = require('express'); //FOR LOCALHOSTING!
var Victor = require('victor');

var app = express();

var server = app.listen(process.env.PORT || 3000, listen);

function listen() {
  var host = server.address().address;
  var port = server.address().port;
  console.log("server is up");
}

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

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

客户端:

var socket = io();

我的意图是每个网页连接只有一个套接字,因为为每个创建的套接字生成了一个新的播放器。

注意:如果服务器有足够的时间,服务器实际上会删除错误创建的套接字(但不够快,不够实用)

1 个答案:

答案 0 :(得分:0)

在这种情况下,我会转移到SharedWorkerServiceWorker中的websocket逻辑。它会将每个用户(浏览器)的连接数减少到1。