mcpField
R
real-time-features

real-time-features

github.com/aj-geddes开发373545 次安装34 周前更新
代码仓库

关于 real-time-features

用于实现客户端与服务器实时双向通信的开发技能,参考指南涵盖 WebSocket、Server-Sent Events 和 Socket.IO,面向构建实时功能的开发者。

主要功能

  1. 01WebSocket 服务端与客户端指南
  2. 02Server-Sent Events 指南
  3. 03Socket.IO 实现指南
  4. 04连接与消息最佳实践

适用场景

  1. 01构建聊天与消息功能
  2. 02创建实时仪表板
  3. 03添加协作编辑功能
  4. 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.md
socketio-production-ready.md
websocket-client-react.md
websocket-server-nodejs.md
scripts/
validate-api.sh
templates/
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 Server (Node.js)
WebSocket Client (React)WebSocket Client (React)
Server-Sent Events (SSE)Server-Sent Events (SSE)
Socket.IO (Production-Ready)Socket.IO (Production-Ready)

最佳实践

✅ 应该
  • 实现带指数退避的重连逻辑
  • 使用心跳/ping-pong 检测失效连接
  • 验证并清理所有消息
  • 实现身份验证和授权
  • 处理连接数限制和速率限制
  • 对大型负载使用压缩
  • 实现适当的错误处理
  • 监控连接健康状况
  • 使用房间/频道进行定向消息传递
  • 实现平滑关闭
❌ 不应该
  • 不加密就发送敏感数据
  • 不做清理就无限期保持连接开启
  • 在定向消息传递足够时仍向所有用户广播
  • 忽略连接状态管理
  • 频繁发送大型负载
  • 跳过消息验证
  • 忽略移动网络/不稳定连接的情况
  • 忽略扩展性问题

评论

支持 Markdown