-
Expressアプリケーションのセットアップ: Node.jsのプロジェクトディレクトリを作成し、Expressフレームワークをインストールします。
mkdir chat-room cd chat-room npm init -y npm install express
-
WebSocketサーバーの設定: ExpressアプリケーションにWebSocketサーバーを追加します。WebSocketの通信を処理するためのライブラリとして、
websocket
パッケージを使用します。npm install websocket
Expressアプリケーションのエントリーポイント(通常は
app.js
やindex.js
)に以下のコードを追加します。const express = require('express'); const http = require('http'); const websocket = require('websocket'); const app = express(); const server = http.createServer(app); const wsServer = new websocket.server({ httpServer: server, }); // WebSocketの接続を処理するコードをここに追加します server.listen(3000, () => { console.log('Server started on port 3000'); });
-
WebSocket接続の処理: WebSocketの接続を処理するために、
wsServer
オブジェクトのon('request', callback)
メソッドを使用します。以下は、簡単な例です。wsServer.on('request', (request) => { const connection = request.accept(null, request.origin); connection.on('message', (message) => { // メッセージの受信処理をここに追加します }); connection.on('close', (reasonCode, description) => { // 接続が閉じられた時の処理をここに追加します }); });
-
チャットルームの実装: チャットルームの実装には、メッセージの送信や受信、ユーザーの管理などが含まれます。以下は、簡単な例です。
const connections = []; wsServer.on('request', (request) => { const connection = request.accept(null, request.origin); connections.push(connection); connection.on('message', (message) => { connections.forEach((conn) => { conn.send(message.utf8Data); }); }); connection.on('close', (reasonCode, description) => { const index = connections.indexOf(connection); connections.splice(index, 1); }); });
これで、Node.jsを使用してシンプルなWebSocketチャットルームを作成する方法がわかりました。この基本的なコードを拡張したり、フロントエンドのUIを追加することで、より機能豊富なチャットアプリケーションを作ることができます。