Node.jsを勉強し始めてイベントの発信の方法がsendとemitの二通りあったので、ざっくりと違いをメモしておきます。
send
sendはイベントに手を加えることができません。
待ち受けるイベント名が「message」のみなので、一つのイベントしか発信することができません。
1 2 3 4 |
//client.html socket.on("message", function(data){ console.log(data); }); |
1 2 3 4 |
//server.js io.sockets.on("connection", function(socket){ socket.send("サーバに接続しました"); }); |
emit
emitは任意のイベント名を設定することができます。
そのため、複数のイベントで発信、受信を行うことができます。
1 2 3 4 5 |
//client.html socket.on("msg", function(data){ console.log(data); //msgのデータ socket.emit('weather', "sunny"); }); |
1 2 3 4 5 6 7 |
//server.js io.sockets.on("connection", function(socket){ socket.emit("msg","誰かが接続しました"); socket.on('weather',function(data){ console.log(data); }); }); |