外观
📡 WebSocket 推送服务
产品简介
wueasy-websocket 是基于 Go 语言构建的轻量级分布式 WebSocket 推送服务,为企业级实时通知、IM、在线协作、物联网告警等场景提供稳定的连接管理与灵活的消息分发能力。在高并发场景下依然保持低延迟与可预测的资源占用。
✨ 核心优势
1. 🚀 高性能设计
- GoLang 实现,低内存占用、天然高并发
- 心跳与超时管理(
heartbeat-content、pong-timeout) - 最大连接数与消息大小限制(
max-connections、max-message-size)
2. 📢 灵活分发
- 支持广播(all)、按用户(user)、按频道(channel)、临时用户(
temp_user) - 临时链接(
temp_user)适用于一次性会话或二次校验场景
3. 🔌 即插即用
- 接入简单:通过
verify-uri完成连接前鉴权,返回userId即可接入 - 兼容
lb://与http(s)://,可与 Nacos 服务发现或网关对接
4. 🔄 集群扩展
- 通过 Kafka/RabbitMQ 实现跨实例广播与客户端上行消息消费
cluster-enabled一键启用集群,线性扩展能力
5. 🔐 安全治理
- 来源域白名单(
allowed-origins)与慢客户端治理策略 - 鉴权超时控制(
verify-timeout),确保系统稳定性
📚 功能特性
| 功能 | 说明 |
|---|---|
| 连接管理 | 心跳与超时、最大连接数与消息大小限制 |
| 连接鉴权 | 升级前通过 verify-uri 校验,返回 userId 后允许连接 |
| 消息发布 | /feign/publish 支持 all/user/temp_user/channel 四种模式 |
| 在线查询 | /feign/getOnlineUsers 返回当前实例内在线用户(不含临时链接) |
| 临时链接 | 通过 temp=1 建立临时链接,发布时 targetType=temp_user 仅推送到临时链接 |
| 集群广播 | 开启 cluster-enabled 后消息写入 MQ,由各实例消费并分发 |
| 客户端上行 | accept-client-message=true 时接收客户端消息并可写入 MQ |
| 服务发现 | 可选 Nacos 集成,简化内部服务接入 |
🔁 消息队列支持
| MQ类型 | 特性 | 适用场景 |
|---|---|---|
| Kafka | 高吞吐、可配置 acks、广播/共享消费灵活 | 大规模广播、可靠性要求高 |
| RabbitMQ | 路由灵活(exchange/routing-key)、队列隔离 | 多场景分发、细粒度路由 |
🧩 接入与示例
- 建立连接:
ws://host:port/ws?code=<一次性code>或ws://host:port/ws?temp=1&code=<code> - 发布消息:
POST /feign/publish,{"targetType":"user","target":"user-123","data":"hi"} - 查询在线:
GET /feign/getOnlineUsers
📚 相关文档
技术支持 💪
- 📞 QQ:535412000
- 📧 邮箱:server@wueasy.com
- 🌐 官网:https://www.wueasy.com