我正在使用node.js和socket.io作为聊天程序,并且听了一些事件。这是相关代码:
gpioset $(gpiofind "USR-LED-2")=1
如果客户端发出的事件未注册为server: io.sockets.on('connection',( socket ) => {
socket.on('joinRoom',( data )=>{ do with message });
socket.on('leaveRoom',( data )=>{ do with message });
}
client: io.emit('joinRoom',{uid:11});
,则服务器如何检测到该事件?
答案 0 :(得分:1)
使用 socketio通配符插件。
您可以使用wildcard套接字IO插件按照SocketIO官方文档here中的建议进行操作,例如:
socket.on('*', function(packet){
// client.emit('foo', 'bar', 'baz')
packet.data === ['foo', 'bar', 'baz']
});
答案 1 :(得分:0)
因为套接字服务器正在侦听端口上发生的事件,而不是“事件”。因此,如果某物被“散发”并且有“听者”会捡起它,那么它只是不知道该如何处理。
不确定这是否有帮助,但这是socket.io cheetsheet
答案 2 :(得分:0)
在 3.x 中,无需任何插件即可使用 onAny
listener 完成:
socket.onAny((eventName, ...args) => {
const isNotRegistered = !Object.keys(socket._events).includes(eventName)
if (isNotRegistered) {
// Event is not registered
}
})