WebSocketルームは、複数のクライアント間でメッセージをやり取りするためのグループ化されたチャットルームのようなものです。以下に、ルームを作成するための基本的な手順といくつかの利用例を示します。
-
Expressとwsモジュールのインストール
npm install express ws
-
Expressアプリケーションの設定
const express = require('express'); const app = express(); // Expressアプリケーションの設定 const server = app.listen(3000, () => { console.log('Server started on port 3000'); });
-
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ルームの実装を行ってください。