我大概是这样,想让服务端能检查客户端在线状态
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 比数据库里多的情况
我感到没有思路,各位老哥知道该怎么查不
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.