io.socket.off()
解除绑定指定的事件处理程序(与 .on()
相反)。
io.socket.off(eventIdentity, handlerFn);
此方法是为了完整性而存在,但大多数应用程序都不需要使用它。 请参见下面的更多信息。
参数 | 类型 | 详情 | |
---|---|---|---|
1 | eventIdentity | 与服务器发送的消息关联的唯一事件标识,例如“recipe”。 | |
2 | handlerFn | 要从指定事件中解除绑定的事件处理程序函数。 |
- 如果您决定使用此方法,请小心!
io.socket.off()
**不会**阻止此客户端套接字接收任何服务器发送的消息,它只是阻止指定的事件处理程序触发。通常,所需的效果是完全阻止消息发送,这在服务器发送的消息包含私有数据时至关重要。这在套接字断开连接时会自动发生,但也有一些不太常见的用例,在这些用例中需要在套接字仍处于连接状态时将其从房间取消订阅。例如,考虑以下场景:管理员用户在查看实时仪表板时被禁止访问您的系统,并且您的应用程序需要阻止他们接收所有后续的实时更新。要强制客户端套接字停止接收广播消息,**请勿使用此方法**。相反,请在服务器端代码中取消订阅套接字
- 如果使用
sails.sockets.join()
加入了房间,请调用sails.sockets.leave()
。- 如果使用资源型 PubSub 方法加入了房间,请根据需要调用
.unsubscribe()
或.unwatch()
。- 为了使用
.off()
,您需要将传递给.on()
的handlerFn
参数存储在一个变量中。