wiki-files/wg-basic/websocket.md

2.2 KiB
Raw Blame History

title description published date tags editor dateCreated
即时消息 即时消息模块的使用 true 2021-09-14T07:18:48.453Z wg-basic markdown 2021-09-14T06:25:26.887Z

依赖模块

<dependency>
  <groupId>ink.wgink</groupId>
  <artifactId>module-instant-message</artifactId>
  <version>1.0-SNAPSHOT</version>
</dependency>

配置

websocket:
  url: 127.0.0.1
  port: 8081
  # 上下文
  context: websocket

如何对接

  1. 不论后台还是APP首先需要完成登录

  2. 请求接口完成socket登录

    • 后台请求接口:api/websocket/client/login/{clientName}
    • APP请求接口app/websocket/client/login/{clientName}
    • 请求方法GET
    • clientName客户端名称唯一标识非中文
  3. 请求接口后拿到会话IDsessionId

  4. 初始化 WebSocket

  5. 连接打开后,发起 会话注册,携带请求后的 sessionId 完成会话注册。

  6. 注册成功后,可发起 scoket 请求

类型与参数

1. 消息格式说明

消息格式为 JSONObject 字符串 具体内容如下表

| 属性 | 说明 | 类型 | 是否可空 | | :-: | :-: | | id | 消息ID唯一 | String | 否 | | type | 消息类型编码 | Integer | 否 | | isSystem | 是否是系统消息 | Boolean | 否 | | from | 发送人的 userId,如果是系统消息则为:SYSTEM | String | 否 | | to | 接收人的 userIduserId 列表。userId 列表为 英文逗号 分割的字符串 | String | 否 | | body | 消息主体,主体的具体格式会根据 消息编码type 的变化而变化 | String | 否 | | timestamp | 消息时间戳 millisecond | Long | 是 |

from与to可以相同

2. 消息编码

编码 说明 主体格式
1000 注册消息 RegisterBody 的 JSONObject 字符串
2001 文本消息 发送的字符串内容
9001 消息发送状态 StatusBody 的 JSONObject 字符串
9101 消息接受状态 StatusBody 的 JSONObject 字符串

3. 主体

RegisterBody

属性 说明 类型 是否可控
sessionId 登录获取到的会话ID String