2016-11-26 79 views
0

我想用自定义参数手动发送断开连接事件到socket.io服务器。我用这个功能,但将无法工作:Socket.io发送脱机事件与参数

//客户

var userId = 23; 
socket.disconnect(user); 

//服务器

socket.on('disconnect', function (data) { 
     console.log('DISCONNECT: '+ data) 
    }) 

现在,我怎么能发送更多的数据服务器断开连接时发送的事件?

回答

4

套接字IO的断开连接事件在内部被触发,但您可以在调用它时发出自定义事件。

您需要先听取断开连接事件。一旦这个事件被调用,你应该发出你自己的自定义事件,我们称之为myCustomEvent一旦这个事件被调用,你的客户应该在听你的myCustomEvent,听到它,然后应该输出你通过它的数据。例如:

io.sockets.on('connection', function (socket) { 
    const _id = socket.id 
    console.log('Socket Connected: ' + _id) 
    // Here we emit our custom event 
    socket.on('disconnect',() => { 
    io.emit('myCustomEvent', {customEvent: 'Custom Message'}) 
    console.log('Socket disconnected: ' + _id) 
    }) 
}) 

那么你的客户会听myCustomEvent像这样

socket.on('myCustomEvent', (data) => { 
    console.log(data) 
}) 

我希望这有助于:)

+0

但是,如果客户端发送一个断开事件已经,什么是保证他会听myCustomEvent?那意味着他没有断开对吗? – yaswanth

+0

自定义事件将是它离开之前发出的最后一个事件,并且每个其他仍然连接的剩余套接字将会听到该事件 – Jackthomson