2015年4月3日金曜日

Node.js+Socket.ioを利用してサーバ<->サーバ間通信

クライアント<->サーバ間でリアルタイム通信をしたい場合にsocket.ioを利用すると思いますが、
今回はこれを利用してサーバ<->サーバ間通信を実現してみます。

※ socket.ioのバージョンは「1.3.5」を利用しています。


受信側:
server.js

var socketio = require("socket.io");
var io = socketio.listen(3000);
console.log("start socket.io server.");
io.sockets.on("connection", function (socket) {
console.log("user connect!")

socket.on("message", function (data) {
console.log(data);
});
});

受信側は特に特殊な実装はなし。
クラサバ通信の時と同じ実装で問題ありません。


では、次に送信側の実装内容です。

送信側:
client.js

var io = require('socket.io-client');
var socket = io('http://localhost:3000');
  socket.on('connect', function () {
    socket.emit("message", 'send message.');
});


socket.io-clientパッケージを利用すれば簡単に実装できてしまいました。


最後に起動方法を記載して終了とさせていただきます。

受信側:
]$ sudo npm install socket.io
]$ node server.js
start socket.io server.

送信側:
]$ sudo npm install socket.io-client
]$ node client.js

※ 受信側を実行した後、送信側を実行すると受信側に次のメッセージが表示されます。

user connect!
send message.