Socket.IOハンドラでのイベントタイプの検出

私はnodeJSとSocket.IOが新しく、問題に直面しています。

Socket.IOハンドラー内のイベントの種類を知る方法はありますか?私はこの種のコードを持っています:

// Fire the appropriate callback when we receive a message
// that.received is an array of callback functions
for (var event in that.received) {
    socket.on(event, function(message) {
       //Of course, this won't work because of "event" scope
        that.received[event](message, this);
    });
}

だから、私が知りたいのは、ハンドラを起動させた "イベント"の実際の値です。 Chromeデベロッパーツールで利用可能な変数を調べようとしましたが、何も見つかりませんでした。

私はこれを行う必要があります。なぜなら、私はSocket.IOの周りに何種類かのラッパークラスを作成して、複数のソケット(フォールバックサーバーに関する長いストーリー)を処理するからです。ハンドラを渡すのに十分な汎用性を持たせたい。

何か案は?

0
追加された 著者 pimvdb,
良い解決策、私はそれが私が不必要な問題を作成したことがわからない場合は、私はそれを使用します。おかげさまで、私はなぜそれについて考えなかったのか分かりません。
追加された 著者 PJP,

1 答え

OK、ばかな質問。

私はこれをする必要があります:

// Fire the appropriate callback when we receive a message
for (var event in that.received) {
    socket.on(event, that.received[event]);
}

私はコールバック関数に "this"を渡していました。これはちょっとばかです。私のコールバックは次のようになりました:

function myCallback(message, socket) {
   //Some code...
    socket.emit('ack', message.id);
   //Some code...
}

しかし、私はこれだけです。

function myCallback(message) {
   //Some code...
    this.emit('ack', message.id);
   //Some code...
}

だから私はもはやスコープの問題はありません。

2
追加された
JavaScript - 日本のコミュニティ
JavaScript - 日本のコミュニティ
2 参加者の

日本人コミュニティのjavascript