如何为所有套接字设置 socket.on('action', func) 回调?
How to set socket.on('action', func) callback for all sockets?
有没有办法为现在连接和将来连接的所有套接字将动作回调设置为默认值,而无需在每个套接字上指定它?
是的,事实上,这就是 socket.io 应用程序的绝大多数事件处理程序的绑定方式。您可以通过在 io connect
事件处理函数中创建并连接每个套接字后立即将相同的事件绑定到每个套接字来表达这一点。
function onFoo () {
// code to deal with foo event
}
io.on('connection', function (socket) {
socket.on('foo', onFoo)
})
因为你写了 "without specifying it on every socket",我怀疑你可能正在寻找一种更具声明性的方法,但 AFAIK 这是唯一的方法。它非常灵活,因为您可以决定对所有套接字都一视同仁,或者您可以有不同的逻辑来对待不同的套接字(例如,经过身份验证的与匿名的)。但无论哪种情况,io
实例上的相同事件处理机制都支持它。
有没有办法为现在连接和将来连接的所有套接字将动作回调设置为默认值,而无需在每个套接字上指定它?
是的,事实上,这就是 socket.io 应用程序的绝大多数事件处理程序的绑定方式。您可以通过在 io connect
事件处理函数中创建并连接每个套接字后立即将相同的事件绑定到每个套接字来表达这一点。
function onFoo () {
// code to deal with foo event
}
io.on('connection', function (socket) {
socket.on('foo', onFoo)
})
因为你写了 "without specifying it on every socket",我怀疑你可能正在寻找一种更具声明性的方法,但 AFAIK 这是唯一的方法。它非常灵活,因为您可以决定对所有套接字都一视同仁,或者您可以有不同的逻辑来对待不同的套接字(例如,经过身份验证的与匿名的)。但无论哪种情况,io
实例上的相同事件处理机制都支持它。