2017-02-02 13 views
2

私はこのノードjs snakeゲームを開発しました。私は初心者として、他の人のコードをコピーして貼り付けています私のプロジェクトを通して戻ってきて、コードのすべての行が何をしているのかをコメントして理解しています。私は同じように見えるこれらの2行のコードに遭遇しましたが、もし私が1つを取ると、ゲームはまだ正常に機能し、私は場面の裏側で重要なものを取り除くことを心配していますJavascript "this.socket.of ..."この行のコードの意味/実行

私は聞き手が関連しているとは思わない念のため。事前に感謝します

答えて

0

ソケットはイベントエミッタを実装しているようです。つまり、イベントを発生させるメソッド(イベントが発生したときにどこからでも呼び出すことができます)と、イベントリスナーを登録するメソッドを実装します。

は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); 
} 

そして、あなたは最初の行を続ける場合は、メッセージが表示されるのみ表示されます。イベントリスナーを追加する

してみてください。

+0

私は最初の行のリスナーを持っていないので、削除するだけですか?それはそれなしでうまく動作するので –

+0

ええ、あなたは今のところそれを削除することができますし、あなたがそれを必要に応じて後で再び追加します。あなたがそのようなリスナーを持っていないなら、それは必ずしも必要ではありません。 –

関連する問題