real-time-features について
クライアントとサーバー間のリアルタイム双方向通信を実装する開発者向けスキルです。WebSocket、Server-Sent Events、Socket.IOのガイドを備え、ライブ機能の構築に役立ちます。
主な機能
- 01WebSocketサーバーとクライアントのガイド
- 02Server-Sent Eventsのガイド
- 03Socket.IO実装ガイド
- 04接続とメッセージのベストプラクティス
活用シーン
- 01チャットやメッセージ機能の構築
- 02ライブダッシュボードの作成
- 03共同編集機能の追加
- 04リアルタイム通知の送信
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill real-time-featuresインストール後、Claude Code で/real-time-featuresを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/server-sent-events-sse.mdsocketio-production-ready.mdwebsocket-client-react.mdwebsocket-server-nodejs.mdscripts/validate-api.shtemplates/api-scaffold.yaml詳細
リアルタイム機能
目次
概要
クライアントとサーバー間のリアルタイムな双方向通信を実装し、データを即時に同期してライブ更新を行います。
利用する場面
- チャットやメッセージングアプリケーション
- ライブダッシュボードや分析
- 共同編集(Google Docs のようなもの)
- リアルタイム通知
- スポーツのライブスコアや株価ティッカー
- マルチプレイヤーゲーム
- ライブオークションや入札システム
- IoT デバイスの監視
- リアルタイム位置追跡
クイックスタート
最小限の動作する例:
// server.ts
import WebSocket, { WebSocketServer } from "ws";
import { createServer } from "http";
interface Message {
type: "join" | "message" | "leave" | "typing";
userId: string;
username: string;
content?: string;
timestamp: number;
}
interface Client {
ws: WebSocket;
userId: string;
username: string;
roomId: string;
}
class ChatServer {
private wss: WebSocketServer;
private clients: Map<string, Client> = new Map();
private rooms: Map<string, Set<string>> = new Map();
constructor(port: number) {
// ... (see reference guides for full implementation)
リファレンスガイド
詳細な実装は references/ ディレクトリにあります:
| ガイド | 内容 |
|---|---|
| WebSocket Server (Node.js) | WebSocket サーバー(Node.js) |
| WebSocket Client (React) | WebSocket クライアント(React) |
| Server-Sent Events (SSE) | Server-Sent Events(SSE) |
| Socket.IO (Production-Ready) | Socket.IO(本番環境対応) |
ベストプラクティス
✅ 推奨事項
- 指数バックオフによる再接続ロジックを実装します
- 接続切断の検出にハートビート/ping-pong を使用します
- すべてのメッセージを検証し、サニタイズします
- 認証と認可を実装します
- 接続数の上限とレート制限に対応します
- 大きなペイロードには圧縮を使用します
- 適切なエラーハンドリングを実装します
- 接続の健全性を監視します
- 対象を絞ったメッセージ送信にはルーム/チャンネルを使用します
- 適切なシャットダウン処理を実装します
❌ 避けるべきこと
- 暗号化せずに機密データを送信する
- クリーンアップせずに接続を無期限に維持する
- 対象を絞ったメッセージ送信で十分な場合に、すべてのユーザーにブロードキャストする
- 接続状態の管理を無視する
- 大きなペイロードを頻繁に送信する
- メッセージの検証を省略する
- モバイル環境や不安定な接続を考慮しない
- スケーリングに関する考慮事項を無視する
コメント
Markdown 対応