mcpField
W
websocket-implementation

websocket-implementation

github.com/aj-geddes開発373665 回インストール34 週間前に更新
リポジトリ

websocket-implementation について

接続管理、メッセージルーティング、エラー処理を備えたスケーラブルな WebSocket システムを設計するスキルです。リアルタイム通信を開発する人向けに、水平スケーリングや実装パターンを案内します。

主な機能

  1. 01接続ライフサイクル管理
  2. 02メッセージルーティングとエラー処理
  3. 03水平スケーリングへの対応
  4. 04Node.js と Python のサーバーガイド
  5. 05ブラウザクライアントとプロトコルのガイド

活用シーン

  1. 01リアルタイムチャットの構築
  2. 02ライブ通知の配信
  3. 03共同編集ツールの作成
  4. 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.md
message-types-and-protocols.md
nodejs-websocket-server-socketio.md
python-websocket-server-aiohttp.md
scaling-with-redis.md
scripts/
validate-api.sh
templates/
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 を使用する
  • メッセージ確認応答を追加する
  • レート制限を実装する
  • エラーを適切に処理する
❌ 避けること
  • 暗号化されていない機密データを送信する
  • 無制限のメッセージ履歴をメモリに保持する
  • 任意のルーム/チャネル作成を許可する
  • 切断された接続のクリーンアップを忘れる
  • 大きなメッセージを頻繁に送信する
  • ネットワーク障害を無視する
  • メッセージにパスワードを保存する
  • 認証/認可を省略する
  • 接続数を際限なく増加させる
  • 最初からスケーラビリティを考慮しない

コメント