gpt4 book ai didi

javascript - 当用户关闭浏览器时检测Websocket关闭连接?

转载 作者:行者123 更新时间:2023-12-04 13:02:54 25 4
gpt4 key购买 nike

我在我的项目中使用 HTML5 websocket 和 nodejs 来创建一个简单的聊天。

到目前为止,一切正常。

但是,我需要弄清楚如何检测连接的用户是否以某种方式失去连接,特别是他们是否关闭了浏览器等。

我尝试了以下代码。

我可以像这样成功连接:

wss.on('connection', function(ws, req) {

//do my stuff here/////
console.log('connection started');

});

但是,当我通过关闭浏览器断开连接时,我在控制台中看不到任何内容。

我使用此代码来检测连接关闭:
wss.on('closed', function(ws) {
console.log('connection closed');
});

如果我遗漏了什么或者做错了什么,有人可以告诉我吗?

提前致谢。

编辑:

这似乎有效:
  ws.on("close", function() {
console.log("closed");
});

最佳答案

this 中所述发布后,默认的 Websocket 实现没有办法检测网络断开连接,只有与用户的故意断开连接。我建议您尝试使用Socket.IO ,因为它会做与您正在寻找的类似的事情,并且可以检测到断开连接。这是一个例子:

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

io.on('connection', function (socket) {
socket.on('disconnect', () => {
console.log('User disconnected.')
});

使用 Socket.IO 的一个缺点是您必须在客户端上使用 JS 库而不是使用原始 WebSocket,但是您将能够查看客户端何时断开连接。

关于javascript - 当用户关闭浏览器时检测Websocket关闭连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50889135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com