如何在socket-io服务器中识别传入消息的用户?

时间:2018-12-09 16:49:24

标签: node.js authentication socket.io

我正在使用nodejs socket-io(服务器)软件包。我知道我可以在建立连接期间使用握手数据来验证用户身份。而且,只要可以获取socket对象,就可以为握手数据添加一些属性,以供以后使用。 但是在处理io.on事件时,仅将数据作为参数传递。

io.on('some-channel', data => console.log(data));

我不知道是谁发送了此消息。让客户端告诉服务器的身份显然不是一个好主意。

一个简单的解决方案是监听每个连接的套接字的通道:

io.sockets.on('connect', socket => {
    socket.on('some-channel', data => console.log(socket, data));
});

但是,当收听某些频道和用户连接交替发生时,我必须收听为新传入用户预先定义的所有频道,并为每个当前连接的用户收听新频道。这似乎不是一个好习惯。

那么,无论io.on事件还是其他任何更好的情况下,我如何识别传入消息的用户?

0 个答案:

没有答案