websocket-implementation について
接続管理、メッセージルーティング、エラー処理を備えたスケーラブルな WebSocket システムを設計するスキルです。リアルタイム通信を開発する人向けに、水平スケーリングや実装パターンを案内します。
主な機能
- 01接続ライフサイクル管理
- 02メッセージルーティングとエラー処理
- 03水平スケーリングへの対応
- 04Node.js と Python のサーバーガイド
- 05ブラウザクライアントとプロトコルのガイド
活用シーン
- 01リアルタイムチャットの構築
- 02ライブ通知の配信
- 03共同編集ツールの作成
- 04クライアントへのイベント配信
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill websocket-implementationインストール後、Claude Code で/websocket-implementationを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/browser-websocket-client.mdmessage-types-and-protocols.mdnodejs-websocket-server-socketio.mdpython-websocket-server-aiohttp.mdscaling-with-redis.mdscripts/validate-api.shtemplates/api-scaffold.yaml詳細
WebSocket の実装
目次
概要
適切な接続管理、メッセージルーティング、エラー処理、水平スケーリングへの対応を備えた、リアルタイム通信向けのスケーラブルな WebSocket システムを構築します。
使用する場面
- リアルタイムのチャットやメッセージングの構築
- ライブ通知の実装
- 共同編集ツールの作成
- ライブデータ更新のブロードキャスト
- リアルタイムダッシュボードの構築
- クライアントへのイベントのストリーミング
- ライブマルチプレイヤーゲーム
クイックスタート
最小限の動作例:
const express = require("express");
const http = require("http");
const socketIo = require("socket.io");
const redis = require("redis");
const app = express();
const server = http.createServer(app);
const io = socketIo(server, {
cors: { origin: "*" },
transports: ["websocket", "polling"],
reconnection: true,
reconnectionDelay: 1000,
reconnectionDelayMax: 5000,
reconnectionAttempts: 5,
});
// Redis adapter for horizontal scaling
const redisClient = redis.createClient();
const { createAdapter } = require("@socket.io/redis-adapter");
io.adapter(createAdapter(redisClient, redisClient.duplicate()));
// Connection management
const connectedUsers = new Map();
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装は references/ ディレクトリにあります。
| ガイド | 内容 |
|---|---|
| Node.js WebSocket サーバー(Socket.IO) | Node.js WebSocket サーバー(Socket.IO) |
| ブラウザー WebSocket クライアント | ブラウザー WebSocket クライアント |
| Python WebSocket サーバー(aiohttp) | Python WebSocket サーバー(aiohttp) |
| メッセージの種類とプロトコル | メッセージの種類とプロトコル |
| Redis によるスケーリング | Redis によるスケーリング |
ベストプラクティス
✅ 実施すること
- 適切な認証を実装する
- 再接続を適切に処理する
- ルーム/チャネルを効果的に管理する
- メッセージを適切に永続化する
- アクティブな接続を監視する
- プレゼンス機能を実装する
- スケーリングに Redis を使用する
- メッセージ確認応答を追加する
- レート制限を実装する
- エラーを適切に処理する
❌ 避けること
- 暗号化されていない機密データを送信する
- 無制限のメッセージ履歴をメモリに保持する
- 任意のルーム/チャネル作成を許可する
- 切断された接続のクリーンアップを忘れる
- 大きなメッセージを頻繁に送信する
- ネットワーク障害を無視する
- メッセージにパスワードを保存する
- 認証/認可を省略する
- 接続数を際限なく増加させる
- 最初からスケーラビリティを考慮しない
コメント
Markdown 対応