Socket.io(带NodeJS) - 客户端没有断开连接事件

时间:2015-08-20 10:23:20

标签: javascript node.js sockets socket.io client-side

我有这个代码来检测客户端的断开连接。

连接事件被正确捕获,但是当连接断开时(我已经强制它通过Chrome设备模式),不会捕获断开连接事件,并且控制台上没有写入任何内容。

var socket = io();
    socket.on("connect", function(){
        console.log("Client connected.");
        this.on("disconnect", function(){
            console.error("Client disconnected");
        });
    });

(我也尝试过使用单独的函数和其他事件,比如connect_error,但它是相同的

socket.on("connect", ...)
socket.on("connect_error", ...)
socket.on("disconnect", ...)

你能否告诉我这次活动有什么问题?

2 个答案:

答案 0 :(得分:0)

您需要使用

socket.on('disconnect', function() {...});

而不是

this.on("disconnect", function() {...});

另一件事是基于socket.io documentation进行连接,正确的语法是:

socket.on('connection', function(){...});

答案 1 :(得分:0)

嗯,Simo的回答是正确的,你正在做的事情也是正确的但只有一次纠正。

当您收听连接时,您会收到一个套接字对象并使用它来处理断开连接。我想使用这个上下文是个问题。

socket.on("connect", function(socket){
    socket.on("disconnected",function(){})
}

试一试。它的工作原理

相关问题