WebSocket 管理后台
创建新项目
项目列表
连接配置
WebSocket Server API 技术文档
概述
这是一个部署在 Cloudflare Workers 上的多项目隔离 WebSocket 服务器,支持 WebSocket、SSE(Server-Sent Events)和 Long Polling 三种传输方式。
管理 API
认证方式: 所有管理 API 需要在请求头中携带 Admin Token:
Authorization: Bearer <admin-token>
创建项目
POST /project
{"key": "myproject", "name": "我的项目"}
生成令牌
POST /token
{"projectKey": "myproject"}
列出项目
GET /project
删除项目
DELETE /project?key=myproject
删除令牌
DELETE /token?projectKey=myproject&token=xxx
修改令牌到期时间
PATCH /token
{"projectKey": "myproject", "token": "xxx", "expiresAt": 1719470400000}
连接方式
所有连接方式都需要携带 project、token 和 mode 参数。
WebSocket
wss://scws.ccwu.cc/ws?project=myproject&token=xxx&mode=long
SSE
https://scws.ccwu.cc/sse?project=myproject&token=xxx&mode=long
Long Polling
https://scws.ccwu.cc/poll?project=myproject&token=xxx&mode=long
消息协议
绑定 UID
{"type": "bind", "uid": "user_1"}
广播消息
{"type": "broadcast", "msg": "Hello World"}
一对一消息
{"type": "send", "to": "user_2", "msg": "你好"}
群发消息
{"type": "multicast", "to": ["user_2", "user_3"], "msg": "大家好"}
获取在线列表
{"type": "list"}
连接模式
- short: 短连接模式,无服务端心跳(默认)
- long: 长连接模式,服务端每 15 秒发送一次 ping 消息
传输降级策略
WebSocket → SSE → Long Polling
项目隔离说明
每个项目使用独立的 Durable Object 实例,不同项目的连接互不干扰,广播消息只在项目内部传播。
技术栈
- 运行环境: Cloudflare Workers
- 状态管理: Cloudflare Durable Objects
- 配置存储: Cloudflare Workers KV
- 协议支持: WebSocket, SSE, Long Polling