Skip to content

📡 WebSocket 推送服务

产品简介

wueasy-websocket 是基于 Go 语言构建的轻量级分布式 WebSocket 推送服务,为企业级实时通知、IM、在线协作、物联网告警等场景提供稳定的连接管理与灵活的消息分发能力。在高并发场景下依然保持低延迟与可预测的资源占用。

✨ 核心优势

1. 🚀 高性能设计

  • GoLang 实现,低内存占用、天然高并发
  • 心跳与超时管理(heartbeat-contentpong-timeout
  • 最大连接数与消息大小限制(max-connectionsmax-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

📚 相关文档

技术支持 💪

🌟 愿你所想,皆你所愿。