見出し画像

WebSocket の使い方 - Node.js

Node.jsの「WebSocket」の使い方をまとめました。「Unity版」のサンプルと通信できます。

1. WebSocket

Webアプリで双方向通信を実現するための技術規格。
文字列とバリナリデータを送受信することが可能。

2. プロジェクトの作成

プロジェクトの作成方法は、次のとおり。

$ mkdir websocketex
$ cd websocketex
$ npm init -y
$ npm install ws --save

3. サーバの作成

WebSocketのサーバのコードは、次のとおり。

◎ server.js

// WebSocketのサーバの生成
let ws = require('ws')
var server = new ws.Server({port:5001});

// 接続時に呼ばれる
server.on('connection', ws => {
    // クライアントからのデータ受信時に呼ばれる
    ws.on('message', message => {
        console.log(message);

        // クライアントにデータを返信
        server.clients.forEach(client => {
            client.send(message);
        });
    });

    // 切断時に呼ばれる
    ws.on('close', () => {
        console.log('close');
    });
});

◎ Serverの生成
引数port付きでServerクラスを生成します。

◎ Serverのイベント
Serverのイベントは次の1つです。
connection: 接続時に呼ばれる。

◎ WebSocketのメソッド
WebSocketのメソッドは次の2つです。

・send(data): クライアントへのデータの送信。
・close(): クライアントとの切断。

◎ WebSocketのイベント
WebSocketのイベントは次の4つです。

・open: 接続時に呼ばれる。
・message: データ受信時に呼ばれる。
・close: 切断時に呼ばれる。
・error: エラー時に呼ばれる。

4. クライアントの作成

WebSocketのクライアントのコードは、次のとおり。

◎ index.html

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
    <!-- 送信ボタン -->
    <input type="button" id="send_button"" value="送信">

    <script>
        // WebSocketのクライアントの生成
        let ws = new WebSocket('ws://localhost:5001')
 
        // 接続時に呼ばれる
        ws.addEventListener('open', e => {
            console.log('open')
        })

        // サーバからのデータ受信時に呼ばれる
        ws.addEventListener('message', e => {
            console.log(e.data)
        })

        // ボタンクリック時に呼ばれる
        document.getElementById('send_button').addEventListener('click', e => {
            // サーバへのデータ送信
            ws.send('hello')
        })
    </script>
</body>
</html>

◎ WebSocketの生成
引数URL付きでWebSocketを生成します。

5. 実行

サーバーは以下のコマンドで実行し、クライアントはブラウザで実行。

$ node server.js

この記事が気に入ったらサポートをしてみませんか?