关于 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 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