wil*_*lly 5 javascript websocket node.js
我在我的项目中使用 HTML5 websocket 和 nodejs 来创建一个简单的聊天。
到目前为止,一切都按预期进行。
但是,我需要弄清楚如何检测已连接的用户是否以某种方式失去连接,特别是他们是否关闭浏览器等。
我尝试了以下代码。
我可以像这样成功连接:
wss.on('connection', function(ws, req) {
//do my stuff here/////
console.log('connection started');
});
Run Code Online (Sandbox Code Playgroud)
但是,当我通过关闭浏览器断开连接时,我在控制台中看不到任何内容。
我使用此代码来检测连接关闭:
wss.on('closed', function(ws) {
console.log('connection closed');
});
Run Code Online (Sandbox Code Playgroud)
如果我遗漏了什么或做错了什么,有人可以告诉我吗?
提前致谢。
编辑:
这似乎有效:
ws.on("close", function() {
console.log("closed");
});
Run Code Online (Sandbox Code Playgroud)
小智 3
正如本文中所讨论的,默认的 Websocket 实现无法检测网络断开连接,只能检测与用户的故意断开连接。我建议您尝试使用Socket.IO,因为它会执行与您正在寻找的类似的操作,并且可以检测断开连接。这是一个例子:
var io = require('socket.io')(80);
io.on('connection', function (socket) {
socket.on('disconnect', () => {
console.log('User disconnected.')
});
Run Code Online (Sandbox Code Playgroud)
使用 Socket.IO 的一个缺点是,您必须在客户端上使用 JS 库,而不是使用原始 WebSocket,但您将能够查看客户端何时断开连接。
| 归档时间: |
|
| 查看次数: |
5851 次 |
| 最近记录: |