我大概是这样,想让服务端能检查客户端在线状态
client:
let interval;
const connect = () => {
sock = new WebSocket();
// 连上了就取消不断重连
clearInterval(interval);
};
sock.onclose = () => {
// 断了就重连
interval = setInterval(connect, 60000);
};
server:
const wsServer = new WebSocket.Server({ server });
wsServer.on("connection", async (conn, req) => {
const id = uuid.v4();
// 存一个在线的客户端到数据库里
onlineTable.addById(id);
conn.on("close", () => {
// 掉线之后,把数据库里的条目删掉
onlineTable.removeById(id);
});
});
结果现在发现 ESTABLISHED tcp connection (netstat -tnulpao | grep port | awk '{print $6}' | sort | uniq -c) 远远多于数据库里已经有的条目,多一个数量级
本地尝试了很多断网,压测之类的操作,还是没能出现 tcp connection 比数据库里多的情况
我感到没有思路,各位老哥知道该怎么查不