Node.jsでのWebSocketルームの作成方法と使用例


WebSocketルームは、複数のクライアント間でメッセージをやり取りするためのグループ化されたチャットルームのようなものです。以下に、ルームを作成するための基本的な手順といくつかの利用例を示します。

  1. Expressとwsモジュールのインストール

    npm install express ws
  2. Expressアプリケーションの設定

    const express = require('express');
    const app = express();
    // Expressアプリケーションの設定
    const server = app.listen(3000, () => {
     console.log('Server started on port 3000');
    });
  3. WebSocketサーバーの作成とルーム管理

    const WebSocket = require('ws');
    const wss = new WebSocket.Server({ server });
    const rooms = {}; // ルームを管理するオブジェクト
    wss.on('connection', (ws) => {
     ws.on('message', (message) => {
       const data = JSON.parse(message);
       const { room, content } = data;
       if (!rooms[room]) {
         rooms[room] = new Set();
       }
       rooms[room].add(ws);
       // ルーム内の全てのクライアントにメッセージを送信
       rooms[room].forEach((client) => {
         client.send(content);
       });
     });
     ws.on('close', () => {
       // クライアントが切断された場合、ルームから削除
       Object.keys(rooms).forEach((room) => {
         rooms[room].delete(ws);
       });
     });
    });

これで基本的なWebSocketルームが作成されました。各クライアントはメッセージを送信すると、同じルームに接続している他のクライアントにメッセージが送信されます。

さらに、ルームの管理方法や機能を拡張することもできます。たとえば、ルーム内のユーザーの管理や、特定のイベントの監視などが考えられます。

以上がNode.jsでWebSocketルームを作成する方法と、いくつかのコード例です。これを参考にして、自分のプロジェクトに適したWebSocketルームの実装を行ってください。