Skip to main content

WebSocket API 概览

即时通讯(IM)模块通过 WebSocket 与客户端双向通信。服务端主动推送消息更新,客户端可通过 WebSocket 命令发送群消息。


终结点

ws://ydzx.panretro.com/external/api/v1/im/imWebSocket/{accessToken}

accessToken 为 OAuth2 授权令牌,通过 /external/api/v1/account/login 获取。

获取令牌

POST /external/api/v1/account/login
参数类型必填说明
accountstring账号 ID
passwordstring密码或 MD5
loginTypestringaccount(明文密码)/ md5(MD5 安全登录)/ 其他(QQ 号 + 明文密码)

MD5 安全登录:用户首次通过网页用明文密码登录后,服务端自动存储 md5PasswordHashsha256(md5(plain) + salt))。之后外部 API 可传 loginType=md5 + password=<MD5(明文)> 登录,无需传输明文密码。

消息格式

所有 WebSocket 消息均为 JSON 文本帧,统一结构:

{
"type": "MessageType",
"code": 200,
"identifier": "...",
"data": ...,
"msg": "..."
}
字段说明
type消息类型,见下方类型表
code状态码,200 为成功
identifier客户端传入的标识,服务端原样返回(仅请求-响应模式)
data负载数据
msg附加消息文本

消息类型 (ImTransferType)

类型Code方向说明
LoginSuccess200服务端→客户端连接认证成功
LoginFail400服务端→客户端accessToken 无效或已过期
LackOfPermission403服务端→客户端accessToken 缺少 chat scope
MessageUpdate1服务端→客户端新消息推送(群内其他用户发言)
SendMessageResult2服务端→客户端发送群消息的结果
FetchChatHistory3服务端→客户端查询群聊历史记录的结果
OperationFailed500服务端→客户端操作失败

API 列表

文档说明
建立链接连接建立与认证
发送群消息客户端发送群消息
查询群聊历史查询群聊历史记录
接收消息推送接收服务端推送的消息
心跳机制心跳机制

涉及文件

文件说明
external/ws/ImWebSocketConnect.javaWebSocket 端点
messager/enums/ImTransferType.java消息类型枚举
config/SpringContextHolder.javaSpring Bean 获取工具