UNPKG

sails

Version:

API-driven framework for building realtime apps, using MVC conventions (based on Express and Socket.io)

32 lines (18 loc) 2.08 kB
# `io.socket.off()` Unbind the specified event handler (opposite of [`.on()`](https://sailsjs.com/documentation/reference/web-sockets/socket-client/io-socket-on)). ```js io.socket.off(eventIdentity, handlerFn); ``` > **This method is here for completeness, but most apps should not need to use it.** See below for more information. ### Usage | | Argument | Type | Details | |---|------------|:------------:|:--------| | 1 | eventIdentity | ((string)) | The unique event identity associated with a server-sent message, e.g. "recipe". | 2 | handlerFn | ((function)) | The event handler function to unbind from the specified event. ### Notes > + If you decide to use this method, be careful! `io.socket.off()` does **not** stop the this client-side socket from receiving any server-sent messages, it just prevents the specified event handler from firing. Usually, the desired effect is to prevent messages _from being sent altogether_, which is critical if your server-sent messages contain private data. This happens automatically when a socket disconnects, but there are also less-common use cases where it is necessary to unsubscribe sockets from rooms while they are still connected. For example, consider a scenario where an admin user is banned from your system while viewing a realtime dashboard, and your app needs to prevent them from receiving all subsequent realtime updates. To force a client socket to stop receiving broadcasted messages, **do not use this method**. Instead, unsubscribe the socket in your server-side code: > + If the room was joined using `sails.sockets.join()`, call `sails.sockets.leave()`. > + If the room was joined using resourceful PubSub methods, call `.unsubscribe()` or `.unwatch()` as appropriate. > + In order to use `.off()`, you will need to store the `handlerFn` argument you passed in to [`.on()`](https://sailsjs.com/documentation/reference/web-sockets/socket-client/io-socket-on) in a variable. <docmeta name="displayName" value="io.socket.off()"> <docmeta name="pageType" value="method">