m_shige1979のささやかな抵抗と欲望の日々

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

なんとなく作ったサイト

http://www.it-check-matome.info/


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をやってみることの必要性が感じられたのでちょっとだけやっている状態。
最近ではスタンドアローンでのサーバークライアントの処理がかなり簡単にかけるようになったのでやっている。
クライアントから任意のタイミングで切断もできるようなので処理も任意に制御できそうかも…