socket.io 特定のリスナーを削除する
2023-10-09 07:04:08
質問
Socket.io v0.9.16を使用しています。 クローム34
特定のリスナーを削除したり、特定のサブスクリプションから退会しようとしています。
こんな感じです。
socket.on('testComplete',function(data){
console.log('test complete',data);
});
function emitTest(){
console.log('emitting test');
socket.emit('test','first emit');
}
function removeListener(){
socket.removeListener('testComplete');
}
を呼び出すと
emitTest
関数を呼び出し、次に
removeListener
関数を呼び出すと、やはり
'test complete'
を呼び出すと
emitTest
を再度呼び出すと、メッセージが表示されます。ソケット関数が動作するのであれば、リスナーは削除されているはずです。
を削除する方法を探しています。 特定の リスナーを削除する方法を探しています。
この回答 には、removeListenerは動作しないと書かれています。
これをするだけでは何か不都合があるのでしょうか。
socket.removeListener=function(name){
if(socket.$events.hasOwnProperty(name)){
delete socket.$events[name];
}
};
私は正解として答えをマークしましたが、私のデザインによく合うので、私のコードでは上記を使用しています。
どのように解決するのですか?
//To unsubscribe all listeners of an event
socket.off('event-name');
//to unsubscribe a certain listener
socket.off('event-name', listener);
なお
socket.off
,
socket.removeListener
,
socket.removeAllListeners
,
socket.removeEventListener
は同義語です。
socket.io v1.4.3にて動作確認済みです。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み] JavaScriptで特定の範囲のランダムな整数を生成する?
-
[解決済み] 特定の行のeslintルールをオフにする
-
[解決済み] JavaScript でオブジェクトが特定のプロパティを持つかどうかを確認するにはどうすればよいですか?
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] 兄弟ノードを選択する方法はありますか?
-
[解決済み] JavaScript のオブジェクトの配列を比較し、最小値/最大値を取得する
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] JSHintの'+'前の改行不良の説明
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] JavaScript で範囲を作成する - 奇妙な構文
-
[解決済み] TypeScriptプロジェクトで既存のC#クラス定義を再利用する方法
-
[解決済み] ECMAScriptとは?
-
[解決済み] 文字列とラベルのローカライズとグローバリゼーションのベストプラクティス【終了しました
-
[解決済み] Chromeのwebkitインスペクタで「Unsafe JavaScript attempt to access frame with URL...」というエラーが継続的に発生する。
-
[解決済み] JavaScript で `throw` の後に `return` をする必要がありますか?
-
[解決済み] javascriptのキャンバスで画像をリサイズする (スムーズ)
-
[解決済み] V8 Javascript エンジンのスタンドアロン実行
-
[解決済み] 変異を伴わないオブジェクトからの値の削除
-
[解決済み] Fetch: ステータスがOKでない場合、プロミスを拒否し、エラーをキャッチするか?