76 lines
2.0 KiB
Markdown
76 lines
2.0 KiB
Markdown
---
|
||
title: 即时消息
|
||
description: 即时消息模块的使用
|
||
published: true
|
||
date: 2021-09-14T07:16:02.666Z
|
||
tags: wg-basic
|
||
editor: markdown
|
||
dateCreated: 2021-09-14T06:25:26.887Z
|
||
---
|
||
|
||
# 依赖模块
|
||
|
||
```xml
|
||
<dependency>
|
||
<groupId>ink.wgink</groupId>
|
||
<artifactId>module-instant-message</artifactId>
|
||
<version>1.0-SNAPSHOT</version>
|
||
</dependency>
|
||
```
|
||
|
||
# 配置
|
||
|
||
```yml
|
||
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. 请求接口后,拿到会话ID(sessionId)
|
||
4. 初始化 WebSocket
|
||
5. 连接打开后,发起 **会话注册**,携带请求后的 **sessionId** 完成会话注册。
|
||
6. 注册成功后,可发起 scoket 请求
|
||
|
||
# 类型与参数
|
||
## 1. 消息格式说明
|
||
|
||
消息格式为 **JSONObject** 字符串
|
||
具体内容如下表
|
||
|
||
| 名称 | 说明 | 类型 | 是否可空 |
|
||
| :-: | :-: |
|
||
| id | 消息ID,唯一 | String | 否 |
|
||
| type | 消息类型编码 | Integer | 否 |
|
||
| isSystem | 是否是系统消息 | Boolean | 否 |
|
||
| from | 发送人的 **userId**,如果是系统消息则为:**SYSTEM** | String | 否 |
|
||
| to | 接收人的 **userId** 或 **userId 列表**。userId 列表为 **英文逗号** 分割的字符串 | String | 否 |
|
||
| body | 消息主体,主体的具体格式会根据 **消息编码(type)** 的变化而变化 | String | 否 |
|
||
| timestamp | 消息时间戳 millisecond | Long | 是 |
|
||
|
||
注:from与to可以相同
|
||
|
||
## 2. 消息编码
|
||
|
||
| 编码 | 说明 | 主体格式 |
|
||
| :-: | :-: | :-: |
|
||
| 1000 | 注册消息 | RegisterBody 的 JSONObject 字符串 |
|
||
| 2001 | 文本消息 | 发送的字符串内容 |
|
||
| 9001 | 消息发送状态 | StatusBody 的 JSONObject 字符串 |
|
||
| 9101 | 消息接受状态 | StatusBody 的 JSONObject 字符串 |
|
||
|
||
## 3. 主体
|
||
|
||
|