m_shige1979のときどきITブログ

プログラムの勉強をしながら学習したことや経験したことをぼそぼそと書いていきます

Github(変なおっさんの顔でるので気をつけてね)

https://github.com/mshige1979

nodejsでsocket.ioのサンプルを作成

socket.io

nodejsのモジュールで双方向通信を可能とするモジュール。
WebScoketなどを用いてチャットなどを実行できる。

いままではhttp併用

だったけど、socket.ioのみのバージョンを用意できるようになったらしい

環境

nodejs v8系
※nodebrewなどを使用してバージョンを更新

実装

サーバ側
var io = require('socket.io').listen(3000);

// 接続
io.sockets.on("connect", function(socket) {
    console.log("connected");

    // 接続後にクライアントへ送信する
    socket.emit("message", "接続OKです。");

    // 切断
    socket.on("disconnect", function(data) {
        console.log(data);
        console.log("disconnected");
    });

});
クライアント側
var client = require("socket.io-client");
var socket = client.connect("http://localhost:3000");

// 接続
socket.on("connect", function() {
    console.log("client connected");
});

// メッセージ受信
socket.on("message", function(data) {
    console.log("受信文字:" + data);
});

// 3秒後に切断
setTimeout(function() {
    socket.disconnect();
}, 3000);

今回はここまで

所感

nodejs自体は嫌いではなかったけどなんとなるやる気が行いものでした。
socket.ioをやってみることの必要性が感じられたのでちょっとだけやっている状態。
最近ではスタンドアローンでのサーバークライアントの処理がかなり簡単にかけるようになったのでやっている。
クライアントから任意のタイミングで切断もできるようなので処理も任意に制御できそうかも…