ソケットはイベントエミッタを実装しているようです。つまり、イベントを発生させるメソッド(イベントが発生したときにどこからでも呼び出すことができます)と、イベントリスナーを登録するメソッドを実装します。
はnodejs持つEventEmitterのAPIを見てください:https://nodejs.org/api/events.html
サーバーは、同様に、「server.em」内イベント・エミッターを持っているようです。
私はあなたのコードが、ソケットイベントエミッター(1行目)からのイベントと、「グローバル」サーバーイベントエミッターからの2イベントの2つのイベントをプレイヤーが接続すると推測しています。私はこれが意図された目的だと思います。あなたが行ったことに関する詳しい情報がないので、その理由を教えていただけません。
イベントリスナーが登録されていないため、最初の行を削除しても何もしないようですソケット。または、そうしても、目に見えるものはありません。
server.socket.of("/snake").addListener("server.spawnSnake", function(playerId) {
console.log("Socket: snake spawn for player "+playerId);
}
そして、あなたは最初の行を続ける場合は、メッセージが表示されるのみ表示されます。イベントリスナーを追加する
してみてください。
私は最初の行のリスナーを持っていないので、削除するだけですか?それはそれなしでうまく動作するので –
ええ、あなたは今のところそれを削除することができますし、あなたがそれを必要に応じて後で再び追加します。あなたがそのようなリスナーを持っていないなら、それは必ずしも必要ではありません。 –