io.socket.off()
指定されたイベントハンドラーの束縛を解除します(.on()
の反対)。
io.socket.off(eventIdentity, handlerFn);
このメソッドは完全性のためにここにありますが、ほとんどのアプリでは使用する必要はありません。 詳細については下記を参照してください。
引数 | 型 | 詳細 | |
---|---|---|---|
1 | eventIdentity | サーバーから送信されたメッセージに関連付けられた一意のイベント識別子(例:「recipe」)。 | |
2 | handlerFn | 指定されたイベントからunbindするイベントハンドラー関数。 |
- このメソッドを使用することにした場合、注意が必要です!
io.socket.off()
は、このクライアント側のソケットがサーバーから送信されたメッセージを受信するのを停止しません。単に、指定されたイベントハンドラーの発火を防ぐだけです。通常、望ましい効果は、メッセージがまったく送信されないようにすることです。これは、サーバーから送信されたメッセージに個人データが含まれている場合に重要です。これは、ソケットが切断されると自動的に発生しますが、接続されたままのソケットをルームから登録解除する必要がある、あまり一般的ではないユースケースもあります。たとえば、管理ユーザーがリアルタイムダッシュボードを表示中にシステムからBANされ、アプリがそのユーザーに後続のリアルタイムアップデートを受信させないようにする必要があるシナリオを考えてみてください。クライアントソケットがブロードキャストされたメッセージの受信を停止させるには、このメソッドを使用しないでください。代わりに、サーバー側のコードでソケットの登録解除を行ってください。
- ルームが
sails.sockets.join()
を使用して参加された場合は、sails.sockets.leave()
を呼び出してください。- リソースフルなPubSubメソッドを使用してルームに参加した場合は、必要に応じて
.unsubscribe()
または.unwatch()
を呼び出してください。.off()
を使用するには、.on()
に渡したhandlerFn
引数を変数に格納しておく必要があります。