これらの2つの違いは何ですか?socket.emit()とsocket.send()
作業中のプログラムでsocket.emit
からsocket.send
に変更した場合、その理由はわかりませんが、サーバーはメッセージを受信できませんでした。
私のプログラムでは、socket.emit
からsocket.send
に変更した場合、サーバーはメッセージを受信しましたが、それは複数回受信されたようです。サーバーが受け取った内容を確認するのにconsole.log()
を使用すると、socket.emit
を使用したときとは異なる何かが表示されます。
この現象はなぜですか? socket.emit
またはsocket.send
をいつ使用するかをどのように知っていますか?あなたがそのようなカスタムイベントを登録することができsocket.emitで
非常に大きな違いはありません。 socket.emit()はsocket.on()ができること全てを行うことができます。なぜ彼らはその機能を果たさなければならなかったのですか? –
私はソースコードをチェックして、ほぼ同じものを作っています(https://github.com/LearnBoost/socket.io/blob/master/lib/socket.js#L318)。たぶん歴史的なもので、下位互換性のためかもしれません。 – Charles
socket.ioのemit()は、EventEmitterのemit()がしゃべっていること以外の何かをしていますか?これは生の擬似ソケットの上にあるプロトコルで、生のメッセージではなく遠方の名前付きイベントとして出てきます。ある意味では、複数のストリームに対して1つのソケットを使用して多重化することができます。 – aredridel