From b49de14dcf6788e61930860f1460687e83b91ffc Mon Sep 17 00:00:00 2001 From: icey-yu <1186114839@qq.com> Date: Tue, 15 Apr 2025 14:53:50 +0800 Subject: [PATCH 1/2] feat: conv && relation sdk doc optimize --- docs/blog/golang/optimization/optimize.mdx | 102 +++++++++ docs/sdks/callback/onBlackAdded.mdx | 136 ------------ docs/sdks/callback/onBlackDeleted.mdx | 134 ------------ docs/sdks/callback/onConversationChanged.mdx | 143 +------------ docs/sdks/callback/onFriendAdded.mdx | 134 ------------ .../callback/onFriendApplicationAccepted.mdx | 135 ------------ .../callback/onFriendApplicationAdded.mdx | 135 ------------ .../callback/onFriendApplicationDeleted.mdx | 133 ------------ .../callback/onFriendApplicationRejected.mdx | 134 ------------ docs/sdks/callback/onFriendDeleted.mdx | 134 ------------ docs/sdks/callback/onFriendInfoChanged.mdx | 134 ------------ docs/sdks/callback/onNewConversation.mdx | 142 +------------ .../class/conversation/conversationInfo.mdx | 199 +----------------- .../class/conversation/conversationReq.mdx | 68 +----- .../conversation/inputStatusChangedData.mdx | 77 +------ .../class/relation/ApplyToAddFriendReq.mdx | 21 +- .../ProcessFriendApplicationParams.mdx | 17 +- .../class/relation/SearchFriendsParam.mdx | 20 +- docs/sdks/class/relation/UserIdResult.mdx | 17 +- docs/sdks/class/relation/blackInfo.mdx | 131 +----------- .../sdks/class/relation/friendApplication.mdx | 179 +--------------- docs/sdks/class/relation/friendInfo.mdx | 140 +----------- docs/sdks/class/relation/updateFriendsReq.mdx | 62 +----- 23 files changed, 154 insertions(+), 2373 deletions(-) create mode 100644 docs/blog/golang/optimization/optimize.mdx diff --git a/docs/blog/golang/optimization/optimize.mdx b/docs/blog/golang/optimization/optimize.mdx new file mode 100644 index 0000000000..3fc0ee11e0 --- /dev/null +++ b/docs/blog/golang/optimization/optimize.mdx @@ -0,0 +1,102 @@ +--- +title: 消息传输优化策略文档 +hide_title: true +sidebar_position: 3 +--- + +# OpenIM 消息传输优化策略文档 + +## 引言 + +随着即时通讯应用的广泛使用,消息传输的效率和稳定性成为系统性能优化的关键因素。本文针对`OpenIM`在消息从客户端发送至服务端接收,再由服务端推送至其他客户端的整个过程中存在的性能瓶颈,提出了一系列优化策略。这些策略涵盖了`RPC`调用优化、消息处理耗时减少、推送机制改进、客户端性能优化、数据库操作优化以及日志管理优化等多个方面,旨在提升系统的整体性能和用户体验。 + +## 1. RPC 压力分析与优化 + +### 1.1 压力分析 + +利用`Prometheus`监控工具和`top`命令,分析各RPC接口的压力情况,识别出压力较大的RPC调用。 + +### 1.2 增加RPC数量 + +针对压力较大的RPC接口,适当增加RPC实例数量,以分摊负载,提升处理能力,避免单点瓶颈。 + +## 2. 消息耗时来源分析 + +通过监控和日志分析,确定消息发送耗时主要集中在服务端还是客户端: + +- **服务端**:说明存在消息积压现象,消息处理速度较慢。 +- **客户端**:说明处理消息耗时较长,需进一步优化。 + +## 3 服务端优化策略 + +### 3.1 识别耗时步骤 + +通过`Prometheus`以及日志分析,发现推送消息需要查询用户的在线状态,而首次查询用户在线状态时如果未命中缓存,会调用RPC接口查询。而本地缓存缺少批量存储接口,导致更新缓存时会循环多次调用RPC接口。这种情况在推送大群中的消息时比较容易出现。 + +### 3.2 缓存策略优化 + +原有的缓存方案为,每查询一个用户,就保存其在线状态,无论是否在线。采用Redis发布订阅机制来维护缓存。 + +目前有两种优化方案: + +1. **全量在线用户缓存**: + - 改变缓存策略,维护所有在线用户的缓存,启动时缓存预热。只要用户不在缓存中即判断用户不在线。 + - 适用于内存充足的场景,避免请求在线状态时的RPC调用,显著提高效率。 +2. **批量缓存插入**: + - 保持原有缓存方案,改为批量插入本地缓存,替代循环单次插入。批量查询在线状态能够减少RPC调用次数,提升效率。 + +### 3.3 推送机制优化 + +#### 3.3.1 在线与离线推送分析 + +日志分析显示,在优化获取用户在线状态后,在线推送和离线推送各占推送总耗时的约一半。 + +#### 3.3.2 异步离线推送 + +- **异步处理**:相对在线推送,离线推送的实时性要求较低。因此将离线推送改为异步方式,避免阻塞主流程。 +- **数据持久化**:利用Kafka确保数据不丢失,提高系统的可靠性和推送效率。 + +## 4. 客户端优化 + +### 4.1 阻塞超时问题分析 + +- 在群成员变动数量较多的情况下,通知消息体积过大,导致处理时间过长,阻塞后续消息。 +- 通过添加详细日志,逐步分析客户端各步骤的耗时,发现在高压环境下存在激烈的锁竞争问题,`SQLite`数据库可能由于压力过大出现“database is locked”错误 + +### 4.2 优化策略 + +#### 4.2.1 消息体积过大优化 + +- **限制API参数长度**:将API请求的参数进行分片处理,减小每次请求的数据量。 +- **分片请求**:分片发送API请求,降低客户端接收通知数据的大小,提高处理效率。 + +#### 4.2.2 锁竞争优化 + +- **细化锁粒度**:将锁的粒度细化,移除业务逻辑中不必要的同步锁,细化为数据库操作的锁,减少锁竞争,提高并发处理能力,又能确保数据库操作的串行化。 +- **本地缓存引入**:添加本地缓存,减少对共享资源的访问,降低锁竞争的可能性。 + +## 5. 日志管理优化 + +### 5.1 降低日志级别 + +通过调整日志级别,减少日志输出量,从而提升系统运行效率。 + +### 5.2 日志记录策略 + +- **关键节点记录**:确保在每个重要的流程节点记录INFO级别日志,便于追踪流程链路。 +- **平衡日志量**:控制日志输出量,生产环境一般使用INFO级别日志,确保将不重要的日志或者开调试时才有价值的日志定为DEBUG级别,既保证问题追踪的需求,又不影响系统性能。 + +## 6. 测试环境优化 + +### 6.1 压力测试优化 + +在进行服务器模拟多客户端测试时,客户端提供的压力较大,而需要测试的为服务端的压力,客户端压力会影响测试结果的准确性。 + +### 6.2 优化措施 + +- **高性能机器选择**:选用性能优越的服务器,确保测试环境能够承受高负载。 +- **使用Unix共享内存**:在客户端较多时,采用Unix的共享内存机制,减少大量磁盘IO操作,提高测试效率和准确性。 + +## 结论 + +通过对OpenIM消息传输过程中各环节的详细分析与优化,本文提出了一系列切实可行的优化策略。这些策略涵盖了从服务端到客户端的全流程优化,旨在提升系统的整体性能、稳定性和用户体验。未来,随着系统规模的扩大和业务需求的增长,需持续监控系统性能,动态调整优化策略,确保OpenIM能够高效稳定地运行。 \ No newline at end of file diff --git a/docs/sdks/callback/onBlackAdded.mdx b/docs/sdks/callback/onBlackAdded.mdx index bf3803a9fb..897220935b 100644 --- a/docs/sdks/callback/onBlackAdded.mdx +++ b/docs/sdks/callback/onBlackAdded.mdx @@ -14,144 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(BlacklistInfo info)? onBlacklistAdded; -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ----------------------------------------------------- | -------- | -| info | [BlacklistInfo](docs/sdks/class/relation/blackInfo.mdx) | 黑名单信息 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onBlackAdded:(OIMBlackInfo *)info; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ---------------------------------------------------- | -------- | -| info | [OIMBlackInfo](docs/sdks/class/relation/blackInfo.mdx) | 黑名单信息 | - - - - - -### 函数原型 - -```Java showLineNumbers - -- void onBlacklistAdded(BlacklistInfo u) - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ----------------------------------------------------- | -------- | -| info | [BlacklistInfo](docs/sdks/class/relation/blackInfo.mdx) | 好友信息 | - - - - - -### 返回原型 - -```ts showLineNumbers - -onBlackAdded(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ---------------------------------------------------------------------------------------------- | ---------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[BlackUserItem](docs/sdks/class/relation/blackInfo.mdx)> | 黑名单信息 | - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); - -const IMSDK = getSDK(); - -IMSDK.on(CbEvents.OnBlackAdded, ({ data }) => { - // data 黑名单信息 -}); -``` - - - - - -### 返回原型 - -```ts showLineNumbers - -onBlackAdded(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ---------------------------------------------------------------------------------------------- | ---------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[BlackUserItem](docs/sdks/class/relation/blackInfo.mdx)> | 黑名单信息 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe(IMSDK.IMEvents.OnBlackAdded, ({ data }) => { - // data 黑名单信息 -}); -``` - - - - - -### 返回原型 - -```C# showLineNumbers -void OnBlackAdded(BlackInfo blackInfo); -``` - ### 返回结果 | 名称 | 类型 | 描述 | | ---- | ----------------------------------------------------- | -------- | | info | [BlackInfo](docs/sdks/class/relation/blackInfo.mdx) | 黑名单信息 | - - - diff --git a/docs/sdks/callback/onBlackDeleted.mdx b/docs/sdks/callback/onBlackDeleted.mdx index cd8d99316a..146573cf0d 100644 --- a/docs/sdks/callback/onBlackDeleted.mdx +++ b/docs/sdks/callback/onBlackDeleted.mdx @@ -14,143 +14,9 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(BlacklistInfo info)? onBlacklistDeleted; -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ----------------------------------------------------- | -------- | -| info | [BlacklistInfo](docs/sdks/class/relation/blackInfo.mdx) | 黑名单信息 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onBlackDeleted:(OIMBlackInfo *)info; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ---------------------------------------------------- | -------- | -| info | [OIMBlackInfo](docs/sdks/class/relation/blackInfo.mdx) | 黑名单信息 | - - - - - -### 函数原型 - -```Java showLineNumbers - -- void onBlacklistDeleted(BlacklistInfo u); - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ----------------------------------------------------- | -------- | -| info | [BlacklistInfo](docs/sdks/class/relation/blackInfo.mdx) | 好友信息 | - - - - - -### 返回原型 - -```ts showLineNumbers - -onBlackDeleted(data: WSEvent): void; - -``` - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); -const IMSDK = getSDK(); - -IMSDK.on(CbEvents.OnBlackDeleted, ({ data }) => { - // data 黑名单信息 -}); -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ---------------------------------------------------------------------------------------------- | ---------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[BlackUserItem](docs/sdks/class/relation/blackInfo.mdx)> | 黑名单信息 | - - - - - -### 返回原型 - -```ts showLineNumbers - -onBlackDeleted(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ---------------------------------------------------------------------------------------------- | ---------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[BlackUserItem](docs/sdks/class/relation/blackInfo.mdx)> | 黑名单信息 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe(IMSDK.IMEvents.OnBlackDeleted, ({ data }) => { - // data 黑名单信息 -}); -``` - - - - - -### 返回原型 - -```C# showLineNumbers -void OnBlackDeleted(BlackInfo info); -``` ### 返回结果 | 名称 | 类型 | 描述 | | ---- | ----------------------------------------------------- | -------- | | info | [BlackInfo](docs/sdks/class/relation/blackInfo.mdx) | 黑名单信息 | - - - diff --git a/docs/sdks/callback/onConversationChanged.mdx b/docs/sdks/callback/onConversationChanged.mdx index facaa38cf9..3df7441f76 100644 --- a/docs/sdks/callback/onConversationChanged.mdx +++ b/docs/sdks/callback/onConversationChanged.mdx @@ -14,147 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(List list)? onConversationChanged; -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | --------------------------------------------------------------------------- | -------- | -| list | List<[ConversationInfo](docs/sdks/class/conversation/conversationInfo.mdx)> | 会话信息 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onConversationChanged:(NSArray *)conversations; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ------------- | --------------------------------------------------------------------------------------- | -------- | -| conversations | NSArray < [OIMConversationInfo](docs/sdks/class/conversation/conversationInfo.mdx) \* > | 会话信息 | - - - - - -### 返回原型 - -```java showLineNumbers - void onConversationChanged(List list); -``` - -### 返回结果 +### 返回数据 | 名称 | 类型 | 描述 | | ---- | --------------------------------------------------------------------------- | -------- | -| list | List<[ConversationInfo](docs/sdks/class/conversation/conversationInfo.mdx)> | 会话信息 | - - - - - - -### 返回原型 - -```ts showLineNumbers - -onConversationChanged(data: WSEvent): void; - -``` - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); -const IMSDK = getSDK(); - -IMSDK.on( - CbEvents.OnConversationChanged, - ({ data }: WSEvent) => { - // data 会话信息 - } -); -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ---------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[ConversationItem](docs/sdks/class/conversation/conversationInfo.mdx)[]> | 会话信息 | - - - - - -### 返回原型 - -```ts showLineNumbers - -onConversationChanged(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ---------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[ConversationItem](docs/sdks/class/conversation/conversationInfo.mdx)[]> | 会话信息 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe( - IMSDK.IMEvents.OnConversationChanged, - ({ data }: WSEvent) => { - // data 会话信息 - } -); -``` - - - - -### 返回原型 - -```C# showLineNumbers -void OnConversationChanged(List list); -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | --------------------------------------------------------------------------- | -------- | -| list | List<[Conversation](docs/sdks/class/conversation/conversationInfo.mdx)> | 会话信息 | - - - +| list | [][Conversation](docs/sdks/class/conversation/conversationInfo.mdx) | 会话信息 | diff --git a/docs/sdks/callback/onFriendAdded.mdx b/docs/sdks/callback/onFriendAdded.mdx index e2f070f0e9..a426d0c2cb 100644 --- a/docs/sdks/callback/onFriendAdded.mdx +++ b/docs/sdks/callback/onFriendAdded.mdx @@ -14,142 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(FriendInfo info)? onFriendAdded; -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | --------------------------------------------------- | -------- | -| info | [FriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onFriendAdded:(OIMFriendInfo *)info; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ------------------------------------------------------ | -------- | -| info | [OIMFriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - - - -### 返回原型 - -```java showLineNumbers - void onFriendAdded(FriendInfo info) -``` - ### 返回结果 | 名称 | 类型 | 描述 | | ---- | --------------------------------------------------- | -------- | | info | [FriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendAdded(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ------------------------------------------------------------------------------------------------ | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendUserItem](docs/sdks/class/relation/friendInfo.mdx)> | 好友信息 | - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); -const IMSDK = getSDK(); - -IMSDK.on(CbEvents.OnFriendAdded, ({ data }) => { - // data 好友信息 -}); -``` - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendAdded(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ------------------------------------------------------------------------------------------------ | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendUserItem](docs/sdks/class/relation/friendInfo.mdx)> | 好友信息 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe(IMSDK.IMEvents.OnFriendAdded, ({ data }) => { - // data 好友信息 -}); -``` - - - - - -### 返回原型 - -```C# showLineNumbers -void OnFriendAdded(FriendInfo info); -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | --------------------------------------------------- | -------- | -| info | [FriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - diff --git a/docs/sdks/callback/onFriendApplicationAccepted.mdx b/docs/sdks/callback/onFriendApplicationAccepted.mdx index d7d1abaa8e..9f331f4df5 100644 --- a/docs/sdks/callback/onFriendApplicationAccepted.mdx +++ b/docs/sdks/callback/onFriendApplicationAccepted.mdx @@ -14,143 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(FriendApplicationInfo application)? onFriendApplicationAccepted; -``` - ### 返回结果 | 名称 | 类型 | 描述 | | ----------- | --------------------------------------------------------------------- | -------------- | | application | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onFriendApplicationAccepted:(OIMFriendApplication *)application; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | -------------------------------------------------------------------- | ------------ | -| application | [OIMFriendApplication](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- void onFriendApplicationAccepted(FriendApplicationInfo u) - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | --------------------------------------------------------------------- | ------------ | -| application | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友拒绝信息 | - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendApplicationAccepted(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | -------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendApplicationItem](docs/sdks/class/relation/friendApplication.mdx)> | 好友申请 | - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); -const IMSDK = getSDK(); - -IMSDK.on(CbEvents.OnFriendApplicationAccepted, ({ data }) => { - // data 好友申请 -}); -``` - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendApplicationAccepted(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | -------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendApplicationItem](docs/sdks/class/relation/friendApplication.mdx)> | 好友申请 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe(IMSDK.IMEvents.OnFriendApplicationAccepted, ({ data }) => { - // data 好友申请 -}); -``` - - - - - -### 返回原型 - -```C# showLineNumbers -void OnFriendApplicationAccepted(FriendApplicationInfo application); -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | --------------------------------------------------------------------- | -------------- | -| application | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - diff --git a/docs/sdks/callback/onFriendApplicationAdded.mdx b/docs/sdks/callback/onFriendApplicationAdded.mdx index a83d081699..2904d54109 100644 --- a/docs/sdks/callback/onFriendApplicationAdded.mdx +++ b/docs/sdks/callback/onFriendApplicationAdded.mdx @@ -14,143 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(FriendApplicationInfo application)? onFriendApplicationAdded; -``` - ### 返回结果 | 名称 | 类型 | 描述 | | ----------- | --------------------------------------------------------------------- | ------------ | | application | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onFriendApplicationAccepted:(OIMFriendApplication *)application; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | -------------------------------------------------------------------- | ---------------- | -| application | [OIMFriendApplication](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - - - - -### 返回原型 - -```java showLineNumbers - void onFriendApplicationAdded(FriendApplicationInfo u) -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | --------------------------------------------------------------------- | ------------ | -| u | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 新增好友申请 | - - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendApplicationAdded(data: WSEvent): void; - -``` - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); -const IMSDK = getSDK(); - -IMSDK.on(CbEvents.OnFriendApplicationAdded, ({ data }) => { - // data 好友申请 -}); -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | -------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendApplicationItem](docs/sdks/class/relation/friendApplication.mdx)> | 好友申请 | - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendApplicationAdded(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | -------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendApplicationItem](docs/sdks/class/relation/friendApplication.mdx)> | 好友申请 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe(IMSDK.IMEvents.OnFriendApplicationAdded, ({ data }) => { - // data 好友申请 -}); -``` - - - - - -### 返回原型 - -```C# showLineNumbers -void OnFriendApplicationAdded(FriendApplicationInfo application); -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | --------------------------------------------------------------------- | ------------ | -| application | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - diff --git a/docs/sdks/callback/onFriendApplicationDeleted.mdx b/docs/sdks/callback/onFriendApplicationDeleted.mdx index 640318dc09..d19f1f9194 100644 --- a/docs/sdks/callback/onFriendApplicationDeleted.mdx +++ b/docs/sdks/callback/onFriendApplicationDeleted.mdx @@ -14,141 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(FriendApplicationInfo application)? onFriendApplicationDeleted; -``` - ### 返回结果 | 名称 | 类型 | 描述 | | ----------- | --------------------------------------------------------------------- | -------------- | | application | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onFriendApplicationRejected:(OIMFriendApplication *)application; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | -------------------------------------------------------------------- | -------------- | -| application | [OIMFriendApplication](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - - - -### 返回原型 - -```java showLineNumbers - void onFriendApplicationDeleted(FriendApplicationInfo u) -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | --------------------------------------------------------------------- | -------------- | -| u | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友申请被删除 | - - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendApplicationDeleted(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | -------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendApplicationItem](docs/sdks/class/relation/friendApplication.mdx)> | 好友申请 | - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); -const IMSDK = getSDK(); - -IMSDK.on(CbEvents.OnFriendApplicationDeleted, ({ data }) => { - // data 好友申请 -}); -``` - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendApplicationDeleted(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | -------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendApplicationItem](docs/sdks/class/relation/friendApplication.mdx)> | 好友申请 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe(IMSDK.IMEvents.OnFriendApplicationDeleted, ({ data }) => { - // data 好友申请 -}); -``` - - - - -### 返回原型 - -```C# showLineNumbers -void OnFriendApplicationDeleted(FriendApplicationInfo application); -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | --------------------------------------------------------------------- | -------------- | -| application | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - diff --git a/docs/sdks/callback/onFriendApplicationRejected.mdx b/docs/sdks/callback/onFriendApplicationRejected.mdx index 7855591eba..087a4f8482 100644 --- a/docs/sdks/callback/onFriendApplicationRejected.mdx +++ b/docs/sdks/callback/onFriendApplicationRejected.mdx @@ -14,142 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(FriendApplicationInfo application)? onFriendApplicationRejected; -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | --------------------------------------------------------------------- | ---------------- | -| application | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onFriendApplicationRejected:(OIMFriendApplication *)application; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | -------------------------------------------------------------------- | ---------------- | -| application | [OIMFriendApplication](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - - - -### 返回原型 - -```java showLineNumbers - void onFriendApplicationRejected(FriendApplicationInfo u) -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ----------- | --------------------------------------------------------------------- | ---------------- | -| u | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友申请已被拒绝 | - - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendApplicationRejected(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | -------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendApplicationItem](docs/sdks/class/relation/friendApplication.mdx)> | 好友申请 | - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); -const IMSDK = getSDK(); - -IMSDK.on(CbEvents.OnFriendApplicationRejected, ({ data }) => { - // data 好友申请 -}); -``` - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendApplicationRejected(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | -------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendApplicationItem](docs/sdks/class/relation/friendApplication.mdx)> | 好友申请 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe(IMSDK.IMEvents.OnFriendApplicationRejected, ({ data }) => { - // data 好友申请 -}); -``` - - - - - -### 返回原型 - -```C# showLineNumbers -void OnFriendApplicationRejected(FriendApplicationInfo application); -``` - ### 返回结果 | 名称 | 类型 | 描述 | | ----------- | --------------------------------------------------------------------- | ---------------- | | application | [FriendApplicationInfo](docs/sdks/class/relation/friendApplication.mdx) | 好友申请 | - - - diff --git a/docs/sdks/callback/onFriendDeleted.mdx b/docs/sdks/callback/onFriendDeleted.mdx index 56b2f60d13..a4a0f3f272 100644 --- a/docs/sdks/callback/onFriendDeleted.mdx +++ b/docs/sdks/callback/onFriendDeleted.mdx @@ -14,142 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(FriendInfo info)? onFriendDeleted; -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | --------------------------------------------------- | -------- | -| info | [FriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onFriendDeleted:(OIMFriendInfo *)info; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ------------------------------------------------------ | -------- | -| info | [OIMFriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - - - -### 返回原型 - -```java showLineNumbers - void onFriendDeleted(FriendInfo u) -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | --------------------------------------------------- | -------- | -| u | [FriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendDeleted(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ------------------------------------------------------------------------------------------------ | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendUserItem](docs/sdks/class/relation/friendInfo.mdx)> | 好友信息 | - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); -const IMSDK = getSDK(); - -IMSDK.on(CbEvents.OnFriendDeleted, ({ data }) => { - // data 好友信息 -}); -``` - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendDeleted(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ------------------------------------------------------------------------------------------------ | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendUserItem](docs/sdks/class/relation/friendInfo.mdx)> | 好友信息 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe(IMSDK.IMEvents.OnFriendDeleted, ({ data }) => { - // data 好友信息 -}); -``` - - - - - -### 返回原型 - -```C# showLineNumbers -void OnFriendDeleted(FriendInfo info); -``` - ### 返回结果 | 名称 | 类型 | 描述 | | ---- | --------------------------------------------------- | -------- | | info | [FriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - diff --git a/docs/sdks/callback/onFriendInfoChanged.mdx b/docs/sdks/callback/onFriendInfoChanged.mdx index 87d5023af7..8530995cd1 100644 --- a/docs/sdks/callback/onFriendInfoChanged.mdx +++ b/docs/sdks/callback/onFriendInfoChanged.mdx @@ -14,142 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(FriendInfo info)? onFriendInfoChanged; -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | --------------------------------------------------- | -------- | -| info | [FriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onFriendInfoChanged:(OIMFriendInfo *)info; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ------------------------------------------------------ | -------- | -| info | [OIMFriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - - - -### 返回原型 - -```java showLineNumbers - void onFriendInfoChanged(FriendInfo u) -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | --------------------------------------------------- | -------- | -| u | [FriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendInfoChanged(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ------------------------------------------------------------------------------------------------ | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendUserItem](docs/sdks/class/relation/friendInfo.mdx)> | 好友信息 | - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); -const IMSDK = getSDK(); - -IMSDK.on(CbEvents.OnFriendInfoChanged, ({ data }) => { - // data 好友信息 -}); -``` - - - - - -### 返回原型 - -```ts showLineNumbers - -onFriendInfoChanged(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ------------------------------------------------------------------------------------------------ | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[FriendUserItem](docs/sdks/class/relation/friendInfo.mdx)> | 好友信息 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe(IMSDK.IMEvents.OnFriendInfoChanged, ({ data }) => { - // data 好友信息 -}); -``` - - - - - -### 返回原型 - -```C# showLineNumbers -void OnFriendInfoChanged(FriendInfo info); -``` - ### 返回结果 | 名称 | 类型 | 描述 | | ---- | --------------------------------------------------- | -------- | | info | [FriendInfo](docs/sdks/class/relation/friendInfo.mdx) | 好友信息 | - - - diff --git a/docs/sdks/callback/onNewConversation.mdx b/docs/sdks/callback/onNewConversation.mdx index 832050e0b3..778ec23260 100644 --- a/docs/sdks/callback/onNewConversation.mdx +++ b/docs/sdks/callback/onNewConversation.mdx @@ -14,148 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### 返回原型 - -```dart showLineNumbers - Function(List list)? onNewConversation; -``` - ### 返回结果 | 名称 | 类型 | 描述 | | ---- | --------------------------------------------------------------------------- | -------- | -| list | List<[ConversationInfo](docs/sdks/class/conversation/conversationInfo.mdx)> | 会话信息 | - - - - - -### 返回原型 - -```swift showLineNumbers - -- (void)onNewConversation:(NSArray *)conversations; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ------------- | --------------------------------------------------------------------------------------- | -------- | -| conversations | NSArray < [OIMConversationInfo](docs/sdks/class/conversation/conversationInfo.mdx) \* > | 会话信息 | - - - - - -### 返回原型 - -```java showLineNumbers - void onNewConversation(List list) -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | --------------------------------------------------------------------------- | -------- | -| list | List<[ConversationInfo](docs/sdks/class/conversation/conversationInfo.mdx)> | 会话信息 | - - - - - - -### 返回原型 - -```ts showLineNumbers - -onNewConversation(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ---------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[ConversationItem](docs/sdks/class/conversation/conversationInfo.mdx)[]> | 会话信息 | - -### 调用示例 - -```js showLineNumbers -import { getSDK, CbEvents } from '@openim/wasm-client-sdk'; -// or -// import { getSDK, CbEvents } from '@openim/client-sdk'; -// const IMSDK = getSDK(); -const IMSDK = getSDK(); - -IMSDK.on( - CbEvents.OnNewConversation, - ({ data }: WSEvent) => { - // data 会话信息 - } -); -``` - - - - - -### 返回原型 - -```ts showLineNumbers - -onNewConversation(data: WSEvent): void; - -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | ---------------------------------------------------------------------------------------------------------------- | -------- | -| data | [WSEvent](docs/sdks/class/response.mdx)<[ConversationItem](docs/sdks/class/conversation/conversationInfo.mdx)[]> | 会话信息 | - -### 调用示例 - -```js showLineNumbers -import IMSDK from 'openim-uniapp-polyfill'; - -IMSDK.subscribe( - IMSDK.IMEvents.OnNewConversation, - ({ data }: WSEvent) => { - // data 会话信息 - } -); -``` - - - - - -### 返回原型 - -```C# showLineNumbers -void OnNewConversation(List list); -``` - -### 返回结果 - -| 名称 | 类型 | 描述 | -| ---- | --------------------------------------------------------------------------- | -------- | -| list | List<[Conversation](docs/sdks/class/conversation/conversationInfo.mdx)> | 会话信息 | - - - +| list | [][ConversationInfo](docs/sdks/class/conversation/conversationInfo.mdx)>| 会话信息 | diff --git a/docs/sdks/class/conversation/conversationInfo.mdx b/docs/sdks/class/conversation/conversationInfo.mdx index cf89a6939e..e1a1abb27a 100644 --- a/docs/sdks/class/conversation/conversationInfo.mdx +++ b/docs/sdks/class/conversation/conversationInfo.mdx @@ -14,211 +14,28 @@ toc_max_heading_level: 2 ::: - - - - ### ConversationInfo | 字段名称 | 字段类型 | 描述 | | ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| conversationID | String | 会话 ID | +| conversationID | string | 会话 ID | | conversationType | [int](docs/sdks/enum/conversationType.mdx) | 会话类型 | -| userID | String | 用户 ID | -| groupID | String | 群 ID | -| showName | String | 展示名称 | -| faceURL | String | 头像 | +| userID | string | 用户 ID | +| groupID | string | 群 ID | +| showName | string | 展示名称 | +| faceURL | string | 头像 | | recvMsgOpt | [int](docs/sdks/enum/recvMsgOpt.mdx) | 接收消息 免打扰 0:正常;1:不接受消息;2:接受在线消息不接受离线消息 | | unreadCount | int | 未读数 | | groupAtType | [int](docs/sdks/enum/groupAtType.mdx) | @类型 | | latestMsgSendTime | int | 最新消息发送时间(毫秒) | -| draftText | String | 草稿 | +| draftText | string | 草稿 | | draftTextTime | int | 生成草稿时间 | | isPinned | bool | 是否置顶 | | isPrivateChat | bool | 是否开启了阅后即焚 | | burnDuration | int | 阅后即焚时间(秒) | | isNotInGroup | bool | 暂未使用 | -| attachedInfo | String | 暂未使用 | +| attachedInfo | string | 暂未使用 | | latestMsg | [Message](docs/sdks/class/message/messageInfo.mdx) | 最新的一条消息 | -| ex | String | 扩展字段 | - - - - - -### OIMConversationInfo - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | ---------------------------------------------------------- | ------------------------ | -| conversationID | NSString | 会话 ID | -| conversationType | [OIMConversationType](docs/sdks/enum/conversationType.mdx) | 会话类型 | -| userID | NSString | 用户 ID | -| groupID | NSString | 群 ID | -| showName | NSString | 展示名称 | -| faceURL | NSString | 头像 | -| recvMsgOpt | [OIMReceiveMessageOpt](docs/sdks/enum/recvMsgOpt.mdx) | 消息免打扰状态 | -| unreadCount | NSInteger | 未读数 | -| groupAtType | [OIMGroupAtType](docs/sdks/enum/groupAtType.mdx) | @类型 | -| latestMsgSendTime | NSInteger | 最新消息发送时间(毫秒) | -| draftText | NSString | 草稿 | -| draftTextTime | NSInteger | 生成草稿时间 | -| isPinned | BOOL | 是否置顶 | -| isPrivateChat | BOOL | 是否开启了阅后即焚 | -| burnDuration | NSTimeInterval | 阅后即焚时间(秒) | -| isNotInGroup | BOOL | 暂未使用 | -| attachedInfo | NSString | 暂未使用 | -| latestMsg | [OIMMessageInfo](docs/sdks/class/message/messageInfo.mdx) | 最新的一条消息 | -| ex | NSString | 扩展字段 | - - - - - -### ConversationInfo - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------------- | --- | -| conversationID | String | 会话 ID | -| conversationType | int | 会话类型 [ConversationType](docs/sdks/enum/conversationType.mdx) | -| userID | String | 用户 ID | -| groupID | String | 群 ID | -| showName | String | 展示名称 | -| faceURL | String | 头像 | -| recvMsgOpt | int | 消息免打扰状态 免打扰 0:正常;1:不接受消息;2:接受在线消息不接受离线消息 | -| unreadCount | int | 未读数 | -| groupAtType | int | @类型 [GroupAtType](docs/sdks/enum/groupAtType.mdx) | -| latestMsgSendTime | int | 最新消息发送时间(毫秒) | | -| isPinned | boolean | 是否置顶 | -| isPrivateChat | boolean | 是否开启了阅后即焚 | -| burnDuration | int | 阅后即焚时间(秒) | -| isNotInGroup | boolean | 暂未使用 | -| attachedInfo | String | 暂未使用 | -| latestMsg | [Message](docs/sdks/class/message/messageInfo.mdx) | 最新的一条消息 | -| ex | String | 扩展字段 | - - - - - -### ConversationItem - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | ------------------------------------------------------ | -------------------------- | -| conversationID | string | 会话 ID | -| conversationType | [SessionType](docs/sdks/enum/conversationType.mdx) | 会话类型 | -| userID | string | 用户 ID | -| groupID | string | 群 ID | -| showName | string | 会话名称 | -| faceURL | string | 会话头像 | -| recvMsgOpt | [MessageReceiveOptType](docs/sdks/enum/recvMsgOpt.mdx) | 消息免打扰状态 | -| unreadCount | number | 未读数 | -| groupAtType | [GroupAtType](docs/sdks/enum/groupAtType.mdx) | 强提醒类型 | -| latestMsgSendTime | number | 最新消息发送时间(毫秒) | -| draftText | string | 草稿 | -| draftTextTime | number | 生成草稿时间 | -| isPinned | boolean | 是否置顶 | -| isPrivateChat | boolean | 是否开启了阅后即焚 | -| burnDuration | number | 阅后即焚时间(秒) | -| isNotInGroup | boolean | 暂未使用 | -| attachedInfo | string | 暂未使用 | -| latestMsg | string | 最新的一条消息 | -| ex | string | 扩展字段 | - - - - - -### ConversationItem - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | ------------------------------------------------------ | -------------------------- | -| conversationID | string | 会话 ID | -| conversationType | [SessionType](docs/sdks/enum/conversationType.mdx) | 会话类型 | -| userID | string | 用户 ID | -| groupID | string | 群 ID | -| showName | string | 会话名称 | -| faceURL | string | 会话头像 | -| recvMsgOpt | [MessageReceiveOptType](docs/sdks/enum/recvMsgOpt.mdx) | 消息免打扰状态 | -| unreadCount | number | 未读数 | -| groupAtType | [GroupAtType](docs/sdks/enum/groupAtType.mdx) | 强提醒类型 | -| latestMsgSendTime | number | 最新消息发送时间(毫秒) | -| draftText | string | 草稿 | -| draftTextTime | number | 生成草稿时间 | -| isPinned | boolean | 是否置顶 | -| isPrivateChat | boolean | 是否开启了阅后即焚 | -| burnDuration | number | 阅后即焚时间(秒) | -| isNotInGroup | boolean | 暂未使用 | -| attachedInfo | string | 暂未使用 | -| latestMsg | string | 最新的一条消息 | -| ex | string | 扩展字段 | - - - - - -### ConversationItem - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | ------------------------------------------------------ | -------------------------- | -| conversationID | string | 会话 ID | -| conversationType | [SessionType](docs/sdks/enum/conversationType.mdx) | 会话类型 | -| userID | string | 用户 ID | -| groupID | string | 群 ID | -| showName | string | 会话名称 | -| faceURL | string | 会话头像 | -| recvMsgOpt | [MessageReceiveOptType](docs/sdks/enum/recvMsgOpt.mdx) | 消息免打扰状态 | -| unreadCount | number | 未读数 | -| groupAtType | [GroupAtType](docs/sdks/enum/groupAtType.mdx) | 强提醒类型 | -| latestMsgSendTime | number | 最新消息发送时间(毫秒) | -| draftText | string | 草稿 | -| draftTextTime | number | 生成草稿时间 | -| isPinned | boolean | 是否置顶 | -| isPrivateChat | boolean | 是否开启了阅后即焚 | -| burnDuration | number | 阅后即焚时间(秒) | -| isNotInGroup | boolean | 暂未使用 | -| attachedInfo | string | 暂未使用 | -| latestMsg | string | 最新的一条消息 | -| ex | string | 扩展字段 | - - - - - -### Conversation - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | ---------------------------------------------------------- | ------------------------ | -| ConversationID | string | 会话 ID | -| ConversationType | [ConversationType](docs/sdks/enum/conversationType.mdx) | 会话类型 | -| UserID | string | 用户 ID | -| GroupID | string | 群 ID | -| ShowName | string | 展示名称 | -| FaceURL | string | 头像 | -| RecvMsgOpt | [ReceiveMessageOpt](docs/sdks/enum/recvMsgOpt.mdx) | 消息免打扰状态 | -| UnreadCount | int | 未读数 | -| GroupAtType | [GroupAtType](docs/sdks/enum/groupAtType.mdx) | @类型 | -| LatestMsgSendTime | int | 最新消息发送时间(毫秒) | -| DraftText | string | 草稿 | -| DraftTextTime | integer | 生成草稿时间 | -| IsPinned | bool | 是否置顶 | -| IsPrivateChat | bool | 是否开启了阅后即焚 | -| BurnDuration | int | 阅后即焚时间(秒) | -| IsNotInGroup | bool | 暂未使用 | -| AttachedInfo | string | 暂未使用 | -| LatestMsg | [MessageInfo](docs/sdks/class/message/messageInfo.mdx) | 最新的一条消息 | -| Ex | string | 扩展字段 | +| ex | string | 扩展字段 | - - diff --git a/docs/sdks/class/conversation/conversationReq.mdx b/docs/sdks/class/conversation/conversationReq.mdx index 0d67aa8088..0c281c0157 100644 --- a/docs/sdks/class/conversation/conversationReq.mdx +++ b/docs/sdks/class/conversation/conversationReq.mdx @@ -14,74 +14,18 @@ toc_max_heading_level: 2 ::: - - - - ### ConversationReq | 字段名称 | 字段类型 | 描述 | | ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | +| conversationID | string | 会话 ID | +| conversationType | [int](docs/sdks/enum/conversationType.mdx) | 会话类型 | +| userID | string | 用户 ID | +| groupID | string | 群 ID | | recvMsgOpt | [int](docs/sdks/enum/recvMsgOpt.mdx) | 接收消息 免打扰 0:正常;1:不接受消息;2:接受在线消息不接受离线消息 | | groupAtType | [int](docs/sdks/enum/groupAtType.mdx) | @类型 | | isPinned | bool | 是否置顶 | | isPrivateChat | bool | 是否开启了阅后即焚 | | burnDuration | int | 阅后即焚时间(秒) | -| ex | String | 扩展字段 | - - - - - -### OIMConversationReq - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | ---------------------------------------------------------- | ------------------------ | -| recvMsgOpt | [OIMReceiveMessageOpt](docs/sdks/enum/recvMsgOpt.mdx) | 消息免打扰状态 | -| groupAtType | [OIMGroupAtType](docs/sdks/enum/groupAtType.mdx) | @类型 | -| isPinned | BOOL | 是否置顶 | -| isPrivateChat | BOOL | 是否开启了阅后即焚 | -| burnDuration | NSTimeInterval | 阅后即焚时间(秒) | -| ex | NSString | 扩展字段 | - - - - - -### ConversationReq - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| recvMsgOpt | int | 接收消息 免打扰 0:正常;1:不接受消息;2:接受在线消息不接受离线消息 | -| groupAtType | int | @类型 | -| isPinned | boolean | 是否置顶 | -| isPrivateChat | boolean | 是否开启了阅后即焚 | -| burnDuration | int | 阅后即焚时间(秒) | -| ex | String | 扩展字段 | - - - - - -### ConversationReq - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| RecvMsgOpt | int | 接收消息 免打扰 0:正常;1:不接受消息;2:接受在线消息不接受离线消息 | -| GroupAtType | int | @类型 | -| IsPinned | bool | 是否置顶 | -| IsPrivateChat | bool | 是否开启了阅后即焚 | -| BurnDuration | int | 阅后即焚时间(秒) | -| Ex | String | 扩展字段 | - - - - +| attachedInfo | string | 暂未使用 | +| ex | string | 扩展字段 | diff --git a/docs/sdks/class/conversation/inputStatusChangedData.mdx b/docs/sdks/class/conversation/inputStatusChangedData.mdx index fe75706401..9c356d6152 100644 --- a/docs/sdks/class/conversation/inputStatusChangedData.mdx +++ b/docs/sdks/class/conversation/inputStatusChangedData.mdx @@ -14,82 +14,11 @@ toc_max_heading_level: 2 ::: - - - - -### InputStatusChangedData - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| userID | String | 用户ID | -| conversationID | String | 会话ID | -| platformIDs | List< int > | 平台号 | - - - - - -### OIMInputStatusChangedData - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| userID | NSString | 用户ID | -| conversationID | NSString | 会话ID | -| platformIDs | List< NSInteger > | 平台号 | - - - - - - - - - - ### InputStatusChangedData | 字段名称 | 字段类型 | 描述 | | ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| userID | string | 用户ID | -| conversationID | string | 会话ID | -| platformIDs | number[] | 平台号 | - - - - - -### InputStatusChangedData - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| userID | string | 用户ID | -| conversationID | string | 会话ID | -| platformIDs | number[] | 平台号 | - - - - - -### InputStatusChangedData - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| userID | string | 用户ID | -| conversationID | string | 会话ID | -| platformIDs | number[] | 平台号 | - - - +| userID | string | 用户ID | +| conversationID | string | 会话ID | +| platformIDs | [][int](/docs/sdks/enum/platform.mdx) | 平台号: iOS 1, Android 2, Windows 3, OSX 4, WEB 5, 小程序 6,linux 7 | - diff --git a/docs/sdks/class/relation/ApplyToAddFriendReq.mdx b/docs/sdks/class/relation/ApplyToAddFriendReq.mdx index efc9ae9fef..c60e06c53e 100644 --- a/docs/sdks/class/relation/ApplyToAddFriendReq.mdx +++ b/docs/sdks/class/relation/ApplyToAddFriendReq.mdx @@ -14,24 +14,11 @@ toc_max_heading_level: 2 ::: - - - - ### ApplyToAddFriendReq | 字段名称 | 字段类型 | 描述 | | -------------- | -------- | ----------------------- | -| FromUserID | string | 当前登录用户 ID | -|ToUserID | string | 好友 ID | -| ReqMsg| string | 好友的昵称 | -| Ex| string | 好友的昵称 | - - - - +| fromUserID | string | 当前登录用户 ID | +| toUserID | string | 好友 ID | +| reqMsg| string | 好友的昵称 | +| ex| string | 好友的昵称 | diff --git a/docs/sdks/class/relation/ProcessFriendApplicationParams.mdx b/docs/sdks/class/relation/ProcessFriendApplicationParams.mdx index cc0aa08278..91fb841c07 100644 --- a/docs/sdks/class/relation/ProcessFriendApplicationParams.mdx +++ b/docs/sdks/class/relation/ProcessFriendApplicationParams.mdx @@ -14,22 +14,9 @@ toc_max_heading_level: 2 ::: - - - - ### ProcessFriendApplicationParams | 字段名称 | 字段类型 | 描述 | | -------------- | -------- | ----------------------- | -| ToUserID | string | 用户 ID | -| HandleMsg | string |信息 | - - - - +| toUserID | string | 用户 ID | +| handleMsg | string |信息 | diff --git a/docs/sdks/class/relation/SearchFriendsParam.mdx b/docs/sdks/class/relation/SearchFriendsParam.mdx index 14134f8da0..6510036097 100644 --- a/docs/sdks/class/relation/SearchFriendsParam.mdx +++ b/docs/sdks/class/relation/SearchFriendsParam.mdx @@ -14,24 +14,12 @@ toc_max_heading_level: 2 ::: - - - - ### SearchFriendsParam | 字段名称 | 字段类型 | 描述 | | -------------- | -------- | ----------------------- | -| KeywordList | string[] | 搜索关键词,目前仅支持一个关键词搜索,不能为空 | -| IsSearchUserID| bool |是否以关键词搜索 UserID| -| IsSearchNickname| bool |是否以关键词搜索昵称,默认 false | -|IsSearchRemark| bool |是否以关键词搜索备注,默认 false | - - +| keywordList | string[] | 搜索关键词,目前仅支持一个关键词搜索,不能为空 | +| isSearchUserID| bool |是否以关键词搜索 UserID| +| isSearchNickname| bool |是否以关键词搜索昵称,默认 false | +| isSearchRemark| bool |是否以关键词搜索备注,默认 false | - diff --git a/docs/sdks/class/relation/UserIdResult.mdx b/docs/sdks/class/relation/UserIdResult.mdx index 7c1478cee7..ca77be11b9 100644 --- a/docs/sdks/class/relation/UserIdResult.mdx +++ b/docs/sdks/class/relation/UserIdResult.mdx @@ -12,22 +12,9 @@ toc_max_heading_level: 2 ::: - - - - #### UserIDResult | 字段名称 | 字段类型 | 描述 | | -------- | -------- | ---------------------------- | -| UserID | string | 用户 UserID | -| Result | int | 1 表示好友(并且不是黑名单) | - - - - +| userID | string | 用户 userID | +| result | int | 1 表示好友(并且不是黑名单) | diff --git a/docs/sdks/class/relation/blackInfo.mdx b/docs/sdks/class/relation/blackInfo.mdx index 99d0df186c..2e615bfc6b 100644 --- a/docs/sdks/class/relation/blackInfo.mdx +++ b/docs/sdks/class/relation/blackInfo.mdx @@ -14,112 +14,7 @@ toc_max_heading_level: 2 ::: - - - - -### BlacklistInfo - -| 字段名称 | 字段类型 | 描述 | -| -------------- | -------- | ----------------------- | -| ownerUserID | String | 当前登录用户 ID | -| blockUserID | String | 黑名单用户 ID | -| nickname | String | 用户昵称 | -| faceURL | String | 头像 | -| createTime | int | 拉黑时间 | -| addSource | int | 拉黑方式 | -| operatorUserID | String | 使之成为黑名单的用户 ID | -| attachedInfo | String | 暂未使用 | -| ex | String | 扩展字段 | - - - - - -### OIMBlackInfo - -| 字段名称 | 字段类型 | 描述 | -| -------------- | --------- | ----------------------- | -| ownerUserID | NSString | 当前登录用户 ID | -| blockUserID | NSString | 黑名单用户 ID | -| nickname | NSString | 用户昵称 | -| faceURL | NSString | 头像 | -| createTime | NSInteger | 拉黑时间 | -| addSource | addSource | 拉黑方式 | -| operatorUserID | NSString | 使之成为黑名单的用户 ID | -| attachedInfo | NSString | 暂未使用 | -| ex | NSString | 扩展字段 | - - - - - -### BlacklistInfo - -| 字段名称 | 字段类型 | 描述 | -| -------------- | -------- | ----------------------- | -| userID | String | 黑名单用户 ID | -| nickname | String | 用户昵称 | -| faceURL | String | 头像 | -| createTime | String | 拉黑时间 | -| addSource | String | 拉黑方式 | -| operatorUserID | String | 使之成为黑名单的用户 ID | -| attachedInfo | String | 暂未使用 | -| ex | String | 扩展字段 | - - - - - -### BlackUserItem - -| 字段名称 | 字段类型 | 描述 | -| -------------- | -------- | ----------------------- | -| ownerUserID | string | 当前登录用户 ID | -| blockUserID | string | 黑名单用户 ID | -| nickname | string | 用户昵称 | -| faceURL | string | 头像 | -| createTime | number | 拉黑时间 | -| addSource | number | 拉黑方式 | -| operatorUserID | string | 使之成为黑名单的用户 ID | -| attachedInfo | string | 暂未使用 | -| ex | string | 扩展字段 | - - - - - -### BlackUserItem - -| 字段名称 | 字段类型 | 描述 | -| -------------- | -------- | ----------------------- | -| ownerUserID | string | 当前登录用户 ID | -| blockUserID | string | 黑名单用户 ID | -| nickname | string | 用户昵称 | -| faceURL | string | 头像 | -| createTime | number | 拉黑时间 | -| addSource | number | 拉黑方式 | -| operatorUserID | string | 使之成为黑名单的用户 ID | -| attachedInfo | string | 暂未使用 | -| ex | string | 扩展字段 | - - - - - - -### BlackUserItem +### BlackInfo | 字段名称 | 字段类型 | 描述 | | -------------- | -------- | ----------------------- | @@ -127,29 +22,9 @@ values={[ | blockUserID | string | 黑名单用户 ID | | nickname | string | 用户昵称 | | faceURL | string | 头像 | -| createTime | number | 拉黑时间 | -| addSource | number | 拉黑方式 | +| createTime | int | 拉黑时间 | +| addSource | int | 拉黑方式 | | operatorUserID | string | 使之成为黑名单的用户 ID | | attachedInfo | string | 暂未使用 | | ex | string | 扩展字段 | - - - -### BlackInfo - -| 字段名称 | 字段类型 | 描述 | -| -------------- | -------- | ----------------------- | -| OwnerUserID | string | 当前登录用户 ID | -| BlockUserID | string | 黑名单用户 ID | -| Nickname | string | 用户昵称 | -| FaceURL | string | 头像 | -| CreateTime | int | 拉黑时间 | -| AddSource | int | 拉黑方式 | -| OperatorUserID | string | 使之成为黑名单的用户 ID | -| AttachedInfo | string | 暂未使用 | -| Ex | string | 扩展字段 | - - - - diff --git a/docs/sdks/class/relation/friendApplication.mdx b/docs/sdks/class/relation/friendApplication.mdx index 8ac8f50c06..79b98f48e4 100644 --- a/docs/sdks/class/relation/friendApplication.mdx +++ b/docs/sdks/class/relation/friendApplication.mdx @@ -14,178 +14,21 @@ toc_max_heading_level: 2 ::: - - - - ### FriendApplicationInfo | 字段名称 | 字段类型 | 描述 | | ------------- | -------- | ----------------------------------- | -| fromUserID | String | 添加者ID | -| fromNickname | String | 添加者昵称 | -| fromFaceURL | String | 添加者头像 | -| toUserID | String | 被添加者ID | -| toNickname | String | 被添加者昵称 | -| toFaceURL | String | 被添加者头像 | +| fromUserID | string | 添加者ID | +| fromNickname | string | 添加者昵称 | +| fromFaceURL | string | 添加者头像 | +| toUserID | string | 被添加者ID | +| toNickname | string | 被添加者昵称 | +| toFaceURL | string | 被添加者头像 | | handleResult | int | 处理结果(1 同意/-1 拒绝/0 未处理) | -| reqMsg | String | 申请添加好友时附带的消息 | +| reqMsg | string | 申请添加好友时附带的消息 | | createTime | int | 创建时间(毫秒) | -| handlerUserID | String | 处理者ID | -| handleMsg | String | 处理好友申请时附带的消息 | +| handlerUserID | string | 处理者ID | +| handleMsg | string | 处理好友申请时附带的消息 | | handleTime | int | 处理时间(毫秒) | -| ex | String | 扩展字段 | -| attachedInfo | String | 暂未使用 | - - - - - -### OIMFriendApplication - -| 字段名称 | 字段类型 | 描述 | -| ------------- | ----------------------------------------------- | -------------------------------- | -| fromUserID | NSString | 添加者ID | -| fromNickname | NSString | 添加者昵称 | -| fromFaceURL | NSString | 添加者头像 | -| toUserID | NSString | 被添加者ID | -| toNickname | NSString | 被添加者昵称 | -| toFaceURL | NSInteger | 被添加者头像 | -| handleResult | [HandleResult](docs/sdks/enum/handleResult.mdx) | 处理结果(同意/拒绝/未处理) | -| reqMsg | NSString | 申请添加好友时附带的消息 | -| createTime | NSInteger | 创建时间(毫秒) | -| handlerUserID | NSString | 处理者ID | -| handleMsg | NSString | 处理好友申请时附带的消息 | -| handleTime | NSInteger | 处理时间(毫秒) | -| ex | NSString | 扩展字段 | -| attachedInfo | NSString | 暂未使用 | - - - - - -### FriendApplicationInfo - -| 字段名称 | 字段类型 | 描述 | -| ------------- | -------- | ---------------------------- | -| fromUserID | String | 添加者ID | -| fromNickname | String | 添加者昵称 | -| fromFaceURL | String | 添加者头像 | -| toUserID | String | 被添加者ID | -| toNickname | String | 被添加者昵称 | -| toFaceURL | String | 被添加者头像 | -| handleResult | [ApplicationHandleResult](docs/sdks/enum/handleResult.mdx) | 处理结果(同意/拒绝/未处理) | -| reqMsg | String | 申请添加好友时附带的消息 | -| createTime | String | 创建时间(毫秒) | -| handlerUserID | String | 处理者ID | -| handleMsg | String | 处理好友申请时附带的消息 | -| handleTime | String | 处理时间(毫秒) | -| ex | String | 扩展字段 | - - - - - -### FriendApplicationItem - -| 字段名称 | 字段类型 | 描述 | -| ------------- | ---------------------------------------------------------- | -------------------------------- | -| fromUserID | string | 添加者ID | -| fromNickname | string | 添加者昵称 | -| fromFaceURL | string | 添加者头像 | -| toUserID | string | 被添加者ID | -| toNickname | string | 被添加者昵称 | -| toFaceURL | string | 被添加者头像 | -| handleResult | [ApplicationHandleResult](docs/sdks/enum/handleResult.mdx) | 处理结果(同意/拒绝/未处理) | -| reqMsg | string | 申请添加好友时附带的消息 | -| createTime | number | 创建时间(毫秒) | -| handlerUserID | string | 处理者ID | -| handleMsg | string | 处理好友申请时附带的消息 | -| handleTime | number | 处理时间(毫秒) | -| ex | string | 扩展字段 | -| attachedInfo | string | 暂未使用 | - - - - - -### FriendApplicationItem - -| 字段名称 | 字段类型 | 描述 | -| ------------- | ---------------------------------------------------------- | -------------------------------- | -| fromUserID | string | 添加者ID | -| fromNickname | string | 添加者昵称 | -| fromFaceURL | string | 添加者头像 | -| toUserID | string | 被添加者ID | -| toNickname | string | 被添加者昵称 | -| toFaceURL | string | 被添加者头像 | -| handleResult | [ApplicationHandleResult](docs/sdks/enum/handleResult.mdx) | 处理结果(同意/拒绝/未处理) | -| reqMsg | string | 申请添加好友时附带的消息 | -| createTime | number | 创建时间(毫秒) | -| handlerUserID | string | 处理者ID | -| handleMsg | string | 处理好友申请时附带的消息 | -| handleTime | number | 处理时间(毫秒) | -| ex | string | 扩展字段 | -| attachedInfo | string | 暂未使用 | - - - - - - -### FriendApplicationItem - -| 字段名称 | 字段类型 | 描述 | -| ------------- | ---------------------------------------------------------- | -------------------------------- | -| fromUserID | string | 添加者ID | -| fromNickname | string | 添加者昵称 | -| fromFaceURL | string | 添加者头像 | -| toUserID | string | 被添加者ID | -| toNickname | string | 被添加者昵称 | -| toFaceURL | string | 被添加者头像 | -| handleResult | [ApplicationHandleResult](docs/sdks/enum/handleResult.mdx) | 处理结果(同意/拒绝/未处理) | -| reqMsg | string | 申请添加好友时附带的消息 | -| createTime | number | 创建时间(毫秒) | -| handlerUserID | string | 处理者ID | -| handleMsg | string | 处理好友申请时附带的消息 | -| handleTime | number | 处理时间(毫秒) | -| ex | string | 扩展字段 | -| attachedInfo | string | 暂未使用 | - - - - - -### FriendApplicationInfo - -| 字段名称 | 字段类型 | 描述 | -| ------------- | -------- | ----------------------------------- | -| FromUserID | string | 添加者ID | -| FromNickname | string | 添加者昵称 | -| FromFaceURL | string | 添加者头像 | -| ToUserID | string | 被添加者ID | -| ToNickname | string | 被添加者昵称 | -| ToFaceURL | string | 被添加者头像 | -| HandleResult | int | 处理结果(1 同意/-1 拒绝/0 未处理) | -| ReqMsg | string | 申请添加好友时附带的消息 | -| CreateTime | int | 创建时间(毫秒) | -| HandlerUserID | string | 处理者ID | -| HandleMsg | string | 处理好友申请时附带的消息 | -| HandleTime | int | 处理时间(毫秒) | -| Ex | string | 扩展字段 | -| AttachedInfo | string | 暂未使用 | - - - - +| ex | string | 扩展字段 | +| attachedInfo | string | 暂未使用 | diff --git a/docs/sdks/class/relation/friendInfo.mdx b/docs/sdks/class/relation/friendInfo.mdx index fd36e6ec7b..8e98388823 100644 --- a/docs/sdks/class/relation/friendInfo.mdx +++ b/docs/sdks/class/relation/friendInfo.mdx @@ -14,120 +14,8 @@ toc_max_heading_level: 2 ::: - - - - -### FriendInfo - -| 字段名称 | 字段类型 | 描述 | -| -------------- | -------- | ----------------------- | -| ownerUserID | String | 当前登录用户 ID | -| friendUserID | String | 好友 ID | -| nickname | String | 好友的昵称 | -| faceURL | String | 头像 | -| remark | String | 好友备注 | -| createTime | int | 成为好友时间 | -| addSource | int | 成为好友的方式 | -| operatorUserID | String | 使双方成为好友的用户 ID | -| attachedInfo | String | 暂未使用 | -| ex | String | 扩展字段 | - - - - - -### OIMFriendInfo - -| 字段名称 | 字段类型 | 描述 | -| -------------- | --------- | ----------------------- | -| ownerUserID | NSString | 当前登录用户 ID | -| friendUserID | NSString | 好友 ID | -| nickname | NSString | 好友的昵称 | -| faceURL | NSString | 头像 | -| remark | NSString | 好友备注 | -| createTime | NSInteger | 成为好友时间 | -| addSource | NSInteger | 成为好友的方式 | -| operatorUserID | NSString | 使双方成为好友的用户 ID | -| attachedInfo | NSString | 暂未使用 | -| ex | NSString | 扩展字段 | - - - - - ### FriendInfo -| 字段名称 | 字段类型 | 描述 | -| -------------- | -------- | ----------------------- | -| ownerUserID | String | 当前登录用户 ID | -| friendUserID | String | 好友 ID | -| nickname | String | 好友的昵称 | -| faceURL | String | 头像 | -| remark | String | 好友备注 | -| createTime | String | 成为好友时间 | -| addSource | String | 成为好友的方式 | -| operatorUserID | String | 使双方成为好友的用户 ID | -| attachedInfo | String | 暂未使用 | -| ex | String | 扩展字段 | - - - - - -### FriendUserItem - -| 字段名称 | 字段类型 | 描述 | -| -------------- | -------- | ----------------------- | -| ownerUserID | string | 当前登录用户 ID | -| friendUserID | string | 好友 ID | -| nickname | string | 好友的昵称 | -| faceURL | string | 头像 | -| remark | string | 好友备注 | -| isPinned | boolean | 是否为星标好友 | -| createTime | number | 成为好友时间 | -| addSource | number | 成为好友的方式 | -| operatorUserID | string | 使双方成为好友的用户 ID | -| attachedInfo | string | 暂未使用 | -| ex | string | 扩展字段 | - - - - - -### FriendUserItem - -| 字段名称 | 字段类型 | 描述 | -| -------------- | -------- | ----------------------- | -| ownerUserID | string | 当前登录用户 ID | -| friendUserID | string | 好友 ID | -| nickname | string | 好友的昵称 | -| faceURL | string | 头像 | -| remark | string | 好友备注 | -| isPinned | boolean | 是否为星标好友 | -| createTime | number | 成为好友时间 | -| addSource | number | 成为好友的方式 | -| operatorUserID | string | 使双方成为好友的用户 ID | -| attachedInfo | string | 暂未使用 | -| ex | string | 扩展字段 | - - - - - -### FriendUserItem - | 字段名称 | 字段类型 | 描述 | | -------------- | -------- | ----------------------- | | ownerUserID | string | 当前登录用户 ID | @@ -135,32 +23,8 @@ values={[ | nickname | string | 好友的昵称 | | faceURL | string | 头像 | | remark | string | 好友备注 | -| isPinned | boolean | 是否为星标好友 | -| createTime | number | 成为好友时间 | -| addSource | number | 成为好友的方式 | +| createTime | int | 成为好友时间 | +| addSource | int | 成为好友的方式 (1:管理员导入;2:申请添加) | | operatorUserID | string | 使双方成为好友的用户 ID | | attachedInfo | string | 暂未使用 | | ex | string | 扩展字段 | - - - - - -### FriendInfo - -| 字段名称 | 字段类型 | 描述 | -| -------------- | -------- | ----------------------- | -| OwnerUserID | string | 当前登录用户 ID | -| FriendUserID | string | 好友 ID | -| Nickname | string | 好友的昵称 | -| FaceURL | string | 头像 | -| Remark | string | 好友备注 | -| CreateTime | int | 成为好友时间 | -| AddSource | int | 成为好友的方式 | -| OperatorUserID | string | 使双方成为好友的用户 ID | -| AttachedInfo | string | 暂未使用 | -| Ex | string | 扩展字段 | - - - - diff --git a/docs/sdks/class/relation/updateFriendsReq.mdx b/docs/sdks/class/relation/updateFriendsReq.mdx index 91318eced5..77077a41f1 100644 --- a/docs/sdks/class/relation/updateFriendsReq.mdx +++ b/docs/sdks/class/relation/updateFriendsReq.mdx @@ -14,67 +14,13 @@ toc_max_heading_level: 2 ::: - - - - ### UpdateFriendsReq | 字段名称 | 字段类型 | 描述 | | ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| remark | String | 备注 | +| ownerUserID | string | 当前登录用户 ID | +| remark | string | 备注 | | isPinned | bool | 是否置顶 | -| friendUserIDs | List< String\> | 好友的User ID列表 | -| ex | String | 扩展字段 | - - - - - -### OIMUpdateFriendsReq - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| remark | NSString | 备注 | -| isPinned | BOOL | 是否置顶 | -| friendUserIDs | NSArray< String\> | 好友的User ID列表 | -| ex | NSString | 扩展字段 | - - - - - -### UpdateFriendsReq - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| remark | String | 备注 | -| isPinned | Boolean | 是否置顶 | -| friendUserIDs | String[] | 好友的User ID列表 | -| ex | String | 扩展字段 | - - - - - - -### UpdateFriendsReq - -| 字段名称 | 字段类型 | 描述 | -| ----------------- | -------------------------------------------------- | --------------------------------------------------------------------- | -| Remark | StringValue | 备注 | -| IsPinned | BoolValue | 是否置顶 | -| FriendUserIDs | String[] | 好友的User ID列表 | -| Ex | StringValue | 扩展字段 | - - +| friendUserIDs | []string | 好友的User ID列表 | +| ex | string | 扩展字段 | - From b74b27aa9b7a27245db47e4cece620553dfcd035 Mon Sep 17 00:00:00 2001 From: icey-yu <119291641+icey-yu@users.noreply.github.com> Date: Tue, 6 May 2025 16:10:15 +0800 Subject: [PATCH 2/2] Delete docs/blog/golang/optimization/optimize.mdx --- docs/blog/golang/optimization/optimize.mdx | 102 --------------------- 1 file changed, 102 deletions(-) delete mode 100644 docs/blog/golang/optimization/optimize.mdx diff --git a/docs/blog/golang/optimization/optimize.mdx b/docs/blog/golang/optimization/optimize.mdx deleted file mode 100644 index 3fc0ee11e0..0000000000 --- a/docs/blog/golang/optimization/optimize.mdx +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: 消息传输优化策略文档 -hide_title: true -sidebar_position: 3 ---- - -# OpenIM 消息传输优化策略文档 - -## 引言 - -随着即时通讯应用的广泛使用,消息传输的效率和稳定性成为系统性能优化的关键因素。本文针对`OpenIM`在消息从客户端发送至服务端接收,再由服务端推送至其他客户端的整个过程中存在的性能瓶颈,提出了一系列优化策略。这些策略涵盖了`RPC`调用优化、消息处理耗时减少、推送机制改进、客户端性能优化、数据库操作优化以及日志管理优化等多个方面,旨在提升系统的整体性能和用户体验。 - -## 1. RPC 压力分析与优化 - -### 1.1 压力分析 - -利用`Prometheus`监控工具和`top`命令,分析各RPC接口的压力情况,识别出压力较大的RPC调用。 - -### 1.2 增加RPC数量 - -针对压力较大的RPC接口,适当增加RPC实例数量,以分摊负载,提升处理能力,避免单点瓶颈。 - -## 2. 消息耗时来源分析 - -通过监控和日志分析,确定消息发送耗时主要集中在服务端还是客户端: - -- **服务端**:说明存在消息积压现象,消息处理速度较慢。 -- **客户端**:说明处理消息耗时较长,需进一步优化。 - -## 3 服务端优化策略 - -### 3.1 识别耗时步骤 - -通过`Prometheus`以及日志分析,发现推送消息需要查询用户的在线状态,而首次查询用户在线状态时如果未命中缓存,会调用RPC接口查询。而本地缓存缺少批量存储接口,导致更新缓存时会循环多次调用RPC接口。这种情况在推送大群中的消息时比较容易出现。 - -### 3.2 缓存策略优化 - -原有的缓存方案为,每查询一个用户,就保存其在线状态,无论是否在线。采用Redis发布订阅机制来维护缓存。 - -目前有两种优化方案: - -1. **全量在线用户缓存**: - - 改变缓存策略,维护所有在线用户的缓存,启动时缓存预热。只要用户不在缓存中即判断用户不在线。 - - 适用于内存充足的场景,避免请求在线状态时的RPC调用,显著提高效率。 -2. **批量缓存插入**: - - 保持原有缓存方案,改为批量插入本地缓存,替代循环单次插入。批量查询在线状态能够减少RPC调用次数,提升效率。 - -### 3.3 推送机制优化 - -#### 3.3.1 在线与离线推送分析 - -日志分析显示,在优化获取用户在线状态后,在线推送和离线推送各占推送总耗时的约一半。 - -#### 3.3.2 异步离线推送 - -- **异步处理**:相对在线推送,离线推送的实时性要求较低。因此将离线推送改为异步方式,避免阻塞主流程。 -- **数据持久化**:利用Kafka确保数据不丢失,提高系统的可靠性和推送效率。 - -## 4. 客户端优化 - -### 4.1 阻塞超时问题分析 - -- 在群成员变动数量较多的情况下,通知消息体积过大,导致处理时间过长,阻塞后续消息。 -- 通过添加详细日志,逐步分析客户端各步骤的耗时,发现在高压环境下存在激烈的锁竞争问题,`SQLite`数据库可能由于压力过大出现“database is locked”错误 - -### 4.2 优化策略 - -#### 4.2.1 消息体积过大优化 - -- **限制API参数长度**:将API请求的参数进行分片处理,减小每次请求的数据量。 -- **分片请求**:分片发送API请求,降低客户端接收通知数据的大小,提高处理效率。 - -#### 4.2.2 锁竞争优化 - -- **细化锁粒度**:将锁的粒度细化,移除业务逻辑中不必要的同步锁,细化为数据库操作的锁,减少锁竞争,提高并发处理能力,又能确保数据库操作的串行化。 -- **本地缓存引入**:添加本地缓存,减少对共享资源的访问,降低锁竞争的可能性。 - -## 5. 日志管理优化 - -### 5.1 降低日志级别 - -通过调整日志级别,减少日志输出量,从而提升系统运行效率。 - -### 5.2 日志记录策略 - -- **关键节点记录**:确保在每个重要的流程节点记录INFO级别日志,便于追踪流程链路。 -- **平衡日志量**:控制日志输出量,生产环境一般使用INFO级别日志,确保将不重要的日志或者开调试时才有价值的日志定为DEBUG级别,既保证问题追踪的需求,又不影响系统性能。 - -## 6. 测试环境优化 - -### 6.1 压力测试优化 - -在进行服务器模拟多客户端测试时,客户端提供的压力较大,而需要测试的为服务端的压力,客户端压力会影响测试结果的准确性。 - -### 6.2 优化措施 - -- **高性能机器选择**:选用性能优越的服务器,确保测试环境能够承受高负载。 -- **使用Unix共享内存**:在客户端较多时,采用Unix的共享内存机制,减少大量磁盘IO操作,提高测试效率和准确性。 - -## 结论 - -通过对OpenIM消息传输过程中各环节的详细分析与优化,本文提出了一系列切实可行的优化策略。这些策略涵盖了从服务端到客户端的全流程优化,旨在提升系统的整体性能、稳定性和用户体验。未来,随着系统规模的扩大和业务需求的增长,需持续监控系统性能,动态调整优化策略,确保OpenIM能够高效稳定地运行。 \ No newline at end of file