@rongcloud/engine 5.1.1-enterprise-alpha.1 → 5.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
- * RCEngine - v5.1.1-enterprise-alpha.1
3
- * CommitId - 035b263c269c6ec4ca32b3f8354e24e8bb06338a
4
- * Wed Jan 19 2022 10:46:43 GMT+0800 (China Standard Time)
2
+ * RCEngine - v5.1.2
3
+ * CommitId - efd1b7f44d2517ab9a2fab003c298184d1f06fca
4
+ * Thu Feb 17 2022 14:47:39 GMT+0800 (China Standard Time)
5
5
  * ©2020 RongCloud, Inc. All rights reserved.
6
6
  */
7
7
  /**
@@ -1683,6 +1683,10 @@ interface IBaseConversationInfo {
1683
1683
  targetId: string;
1684
1684
  channelId: string;
1685
1685
  }
1686
+ interface IConversationState extends IBaseConversationInfo {
1687
+ unreadCount: number;
1688
+ unreadMentionedCount: number;
1689
+ }
1686
1690
 
1687
1691
  /**
1688
1692
  * 导航信息数据就结构
@@ -2167,6 +2171,10 @@ interface IRTCUsers {
2167
2171
  * 发布的资源数据,是一个 JSON 字符串,解析后为发布的资源列表
2168
2172
  */
2169
2173
  uris?: string;
2174
+ /**
2175
+ * 加房间的身份标识,保存主房间 roomId
2176
+ */
2177
+ extra?: string;
2170
2178
  };
2171
2179
  };
2172
2180
  }
@@ -2182,6 +2190,12 @@ interface IJoinRTCRoomData extends IRTCUsers {
2182
2190
  interface KVString {
2183
2191
  [key: string]: string;
2184
2192
  }
2193
+ /**
2194
+ * 设置 RTC 人员 inner、outer 数据
2195
+ */
2196
+ interface IRTCUserData {
2197
+ [key: string]: string;
2198
+ }
2185
2199
 
2186
2200
  interface IAsyncRes<T = any> {
2187
2201
  /**
@@ -2859,8 +2873,9 @@ interface IEngine {
2859
2873
  * 建立连接
2860
2874
  * @param token
2861
2875
  * @param naviInfo
2876
+ * @param reconnectKickEnable
2862
2877
  */
2863
- connect(token: string, naviInfo: INaviInfo, versionInfo: string): Promise<ErrorCode>;
2878
+ connect(token: string, naviInfo: INaviInfo, reconnectKickEnable?: boolean): Promise<ErrorCode>;
2864
2879
  /**
2865
2880
  * 上报版本信息
2866
2881
  * @param version
@@ -3035,8 +3050,9 @@ interface IEngine {
3035
3050
  * @param isPersited 是否存储
3036
3051
  * @param isCounted 是否技术
3037
3052
  * @param searchProps 搜索字段,只在搭配协议栈使用时有效
3053
+ * @param isStatusMessage 是否是状态消息
3038
3054
  */
3039
- registerMessageType(objectName: string, isPersited: boolean, isCounted: boolean, searchProps: string[]): void;
3055
+ registerMessageType(objectName: string, isPersited: boolean, isCounted: boolean, searchProps: string[], isStatusMessage: boolean): void;
3040
3056
  /**
3041
3057
  * 加入聊天室
3042
3058
  * @param count 拉取消息数量
@@ -3320,7 +3336,7 @@ interface IEngine {
3320
3336
  * 获取所有群聊会话 @ 消息未读数
3321
3337
  */
3322
3338
  getAllUnreadMentionedCount(): Promise<IAsyncRes<number>>;
3323
- joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number): IPromiseResult<IJoinRTCRoomData>;
3339
+ joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData): IPromiseResult<IJoinRTCRoomData>;
3324
3340
  quitRTCRoom(roomId: string): Promise<ErrorCode>;
3325
3341
  rtcPing(roomId: string, mode: number, broadcastType?: number): Promise<ErrorCode>;
3326
3342
  getRTCRoomInfo(roomId: string): IPromiseResult<IRTCRoomInfo>;
@@ -3687,7 +3703,7 @@ declare class DataCodec {
3687
3703
  /**
3688
3704
  * 加入 RTC 房间
3689
3705
  */
3690
- encodeJoinRTCRoom(mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType): any[];
3706
+ encodeJoinRTCRoom(mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData): any[];
3691
3707
  /**
3692
3708
  * 退出 RTC 房间
3693
3709
  */
@@ -3975,8 +3991,8 @@ interface IWatcher {
3975
3991
  pullFinished?: ITagListener;
3976
3992
  onConnecting?: () => void;
3977
3993
  onConnected?: () => void;
3978
- onDisconnect?: () => void;
3979
- onSuspend?: () => void;
3994
+ onDisconnect?: (status: ConnectionStatus) => void;
3995
+ onSuspend?: (status: ConnectionStatus | ErrorCode) => void;
3980
3996
  readReceiptReceived?: (conversation: IConversationOption, messageUId: string, sentTime: number) => void;
3981
3997
  messageReceiptRequest?: (conversation: IConversationOption, messageUId: string, senderUserId: string) => void;
3982
3998
  messageReceiptResponse?: (conversation: IConversationOption, receivedUserId: string, messageUIdList: string[]) => void;
@@ -4093,8 +4109,8 @@ declare class APIContext {
4093
4109
  private _connectionStatusListener;
4094
4110
  _handleConnecting(): void;
4095
4111
  _handleConnected(): void;
4096
- _handleDisconnect(): void;
4097
- _handleSuspend(): void;
4112
+ _handleDisconnect(status: ConnectionStatus): void;
4113
+ _handleSuspend(status: ConnectionStatus | ErrorCode): void;
4098
4114
  private _messageReceiver;
4099
4115
  _batchMessageReceiver(messages: IReceivedMessage[], leftCount?: number, hasMore?: boolean): void;
4100
4116
  /**
@@ -4156,14 +4172,22 @@ declare class APIContext {
4156
4172
  * 建立连接,连接失败则抛出异常,连接成功后返回用户 userId,否则返回相应的错误码
4157
4173
  * @param token
4158
4174
  * @param refreshNavi 是否需要重新请求导航,当值为 `false` 时,优先使用有效缓存导航,若缓存失效则重新获取导航
4175
+ * @param reconnectKickEnable 设置断线重连时是否踢出当前正在重连的设备 (仅 Electron 环境有效)
4176
+ * 同一个账号在一台新设备上登录的时候,会把这个账号在之前登录的设备上踢出。
4177
+ 由于 SDK 有断线重连功能,存在下面情况。
4178
+ 用户在 A 设备登录,A 设备网络不稳定,没有连接成功,SDK 启动重连机制。
4179
+ 用户此时又在 B 设备登录,B 设备连接成功。
4180
+ A 设备网络稳定之后,用户在 A 设备连接成功,B 设备被踢出。
4181
+ 这个字段就是为这种情况加的。
4182
+ 设置 reconnectKickEnable 为 true 时,SDK 重连的时候发现此时已有别的设备连接成功,不再强行踢出已有设备,而是踢出重连设备。
4159
4183
  */
4160
- connect(token: string, refreshNavi?: boolean): Promise<IConnectResult>;
4184
+ connect(token: string, refreshNavi?: boolean, reconnectKickEnable?: boolean): Promise<IConnectResult>;
4161
4185
  /**
4162
4186
  * 拉取实时配置 web 端需更新 voipCall 字段
4163
4187
  */
4164
4188
  private _pullUserSettings;
4165
4189
  disconnect(): Promise<void>;
4166
- reconnect(): Promise<IConnectResult>;
4190
+ reconnect(reconnectKickEnable?: boolean): Promise<IConnectResult>;
4167
4191
  private _getTokenWithoutNavi;
4168
4192
  /**
4169
4193
  * 获取当前缓存的导航数据
@@ -4176,8 +4200,9 @@ declare class APIContext {
4176
4200
  * @param isPersited 是否存储
4177
4201
  * @param isCounted 是否技术
4178
4202
  * @param searchProps 搜索字段,只在搭配协议栈使用时有效
4203
+ * @param isStatusMessage 是否是状态消息
4179
4204
  */
4180
- registerMessageType(objectName: string, isPersited: boolean, isCounted: boolean, searchProps?: string[]): void;
4205
+ registerMessageType(objectName: string, isPersited: boolean, isCounted: boolean, searchProps?: string[], isStatusMessage?: boolean): void;
4181
4206
  /**
4182
4207
  * 发送消息
4183
4208
  * @param conversationType
@@ -4495,6 +4520,10 @@ declare class APIContext {
4495
4520
  * 获取所有群聊会话 @ 消息未读数
4496
4521
  */
4497
4522
  getAllUnreadMentionedCount(): Promise<IAsyncRes<number>>;
4523
+ /**
4524
+ * 获取本地全部会话的状态
4525
+ */
4526
+ getAllConversationState(): Promise<IAsyncRes<IConversationState[]>>;
4498
4527
  /**
4499
4528
  * 调用非标准方法。所谓非标准方法,是为某些特定需求或产品添加,暂未作为标准接口添加至 API 层。
4500
4529
  * 对于未实现的方法,接口响应 Unsupport 错误码
@@ -4601,7 +4630,7 @@ declare class APIContext {
4601
4630
  * @param mode 房间模式:直播 or 会议
4602
4631
  * @param mediaType 直播房间模式下的媒体资源类型
4603
4632
  */
4604
- joinRTCRoom(roomId: string, mode: RTCMode, mediaType?: number, joinType?: RTCJoinType): Promise<IAsyncRes<IJoinRTCRoomData>>;
4633
+ joinRTCRoom(roomId: string, mode: RTCMode, mediaType?: number, joinType?: RTCJoinType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData): Promise<IAsyncRes<IJoinRTCRoomData>>;
4605
4634
  quitRTCRoom(roomId: string): Promise<ErrorCode>;
4606
4635
  rtcPing(roomId: string, mode: number, mediaType?: number): Promise<ErrorCode>;
4607
4636
  getRTCRoomInfo(roomId: string): Promise<IAsyncRes<IRTCRoomInfo>>;
@@ -4668,6 +4697,14 @@ declare class APIContext {
4668
4697
  declare class PluginContext {
4669
4698
  protected readonly _context: APIContext;
4670
4699
  constructor(_context: APIContext);
4700
+ /**
4701
+ * 获取 context
4702
+ */
4703
+ __getContext(): APIContext;
4704
+ /**
4705
+ * 获取当前的导航数据
4706
+ */
4707
+ getNaviInfo(): INaviInfo | null;
4671
4708
  /**
4672
4709
  * 接收 IM 服务推送的消息,并通过返回 boolean 值决定此消息是否拦截
4673
4710
  * @param message
@@ -4751,8 +4788,9 @@ declare class RTCPluginContext extends PluginContext {
4751
4788
  * @param roomId
4752
4789
  * @param mode 房间模式:直播 or 会议
4753
4790
  * @param broadcastType
4791
+ * @param innerUserData 加副房间时的主房间 Id
4754
4792
  */
4755
- joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType): IPromiseResult<IJoinRTCRoomData>;
4793
+ joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData): IPromiseResult<IJoinRTCRoomData>;
4756
4794
  quitRTCRoom(roomId: string): Promise<ErrorCode>;
4757
4795
  rtcPing(roomId: string, mode: number, broadcastType?: number): Promise<ErrorCode>;
4758
4796
  getRTCRoomInfo(roomId: string): IPromiseResult<IRTCRoomInfo>;
@@ -4933,8 +4971,9 @@ declare abstract class AEngine implements IEngine {
4933
4971
  * 建立连接
4934
4972
  * @param token
4935
4973
  * @param naviInfo
4974
+ * @param reconnectKickEnable
4936
4975
  */
4937
- abstract connect(token: string, naviInfo: INaviInfo): Promise<ErrorCode>;
4976
+ abstract connect(token: string, naviInfo: INaviInfo, reconnectKickEnable?: boolean): Promise<ErrorCode>;
4938
4977
  /**
4939
4978
  * 发送SDK版本
4940
4979
  * @param versionInfo
@@ -5119,8 +5158,9 @@ declare abstract class AEngine implements IEngine {
5119
5158
  * @param isPersited 是否存储
5120
5159
  * @param isCounted 是否技术
5121
5160
  * @param searchProps 搜索字段,只在搭配协议栈使用时有效
5161
+ * @param isStatusMessage 是否是状态消息
5122
5162
  */
5123
- abstract registerMessageType(objectName: string, isPersited: boolean, isCounted: boolean, searchProps: string[]): void;
5163
+ abstract registerMessageType(objectName: string, isPersited: boolean, isCounted: boolean, searchProps: string[], isStatusMessage: boolean): void;
5124
5164
  /**
5125
5165
  * 加入聊天室
5126
5166
  * @param count 拉取消息数量
@@ -5408,7 +5448,11 @@ declare abstract class AEngine implements IEngine {
5408
5448
  * 获取所有群聊会话 @ 消息未读数
5409
5449
  */
5410
5450
  abstract getAllUnreadMentionedCount(): Promise<IAsyncRes<number>>;
5411
- abstract joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType): IPromiseResult<IJoinRTCRoomData>;
5451
+ /**
5452
+ * 获取本地全部会话的状态
5453
+ */
5454
+ abstract getAllConversationState(): Promise<IAsyncRes<IConversationState[]>>;
5455
+ abstract joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData): IPromiseResult<IJoinRTCRoomData>;
5412
5456
  abstract quitRTCRoom(roomId: string): Promise<ErrorCode>;
5413
5457
  abstract rtcPing(roomId: string, mode: number, broadcastType?: number): Promise<ErrorCode>;
5414
5458
  abstract getRTCRoomInfo(roomId: string): IPromiseResult<IRTCRoomInfo>;
@@ -5920,4 +5964,4 @@ declare enum CONNECTION_TYPE {
5920
5964
  */
5921
5965
  declare const version: string;
5922
5966
 
5923
- export { AEngine, ANavi, APIContext, AppStorage, AssertRules, CONNECTION_TYPE, CPP_PROTOCAL_MSGTYPE_OPTION, CallLibMsgType, ChatroomEntryType, ChatroomUserChangeType as ChatroomMemberChangeType, CometChannel, ConnectResultCode, ConnectionStatus, ConversationType, DelayTimer, ErrorCode, EventEmitter, FileType, HttpMethod, IAPIContextOption, IAsyncRes, IBaseConversationInfo, IBlockedMessageInfo, ICancelRoomPKOptions, IChatRoomEntries, IChatRoomEntry, IChatroomEntries, IChatroomEntry, IChatroomInfo, IChatroomListener, IChatroomListenerData, IChrmKVEntries, IChrmKVEntry, IConnectResult, IConnectionStatusListener, IConversationOption, IConversationStateListener, IConversationTag, IConversationTagListener, IDataChannelWatcher, IDeletedExpansion, IEndRoomPKOptions, IEngine, IEngineWatcher, IEventListener, IExpansionListener, IExpansionListenerData, IExpansionMsgContent, IExtraMethod, IInsertMsgOptions, IJoinRTCRoomData, ILocalReadReceiptInfo, ILocalTagStatus, IM_COMET_PULLMSG_TIMEOUT, IM_PING_INTERVAL_TIME, IM_PING_MIN_TIMEOUT, IM_PING_TIMEOUT, IM_SIGNAL_TIMEOUT, IMessageListnenr, IMessageReader, IMessageReaderResponse, IMetionedData, INaviInfo, IPluginGenerator, IPromiseResult, IPushConfig, IRTCInnerListener, IRTCJoinedInfo, IRTCRoomInfo, IRTCUsers, IReadReceiptInfo, IRecallMsgOptions, IReceivedConversation, IReceivedConversationByTag, IReceivedMessage, IRemoveChatRoomEntries, IRemoveChatRoomEntry, IRemoveChatroomEntries, IRemoveChatroomEntry, IReqRoomPKOptions, IRequest, IResRoomPKOptions, IResponse, IRtcTokenData, IRuntime, ISendExMsgOptions, ISendMsgOptions, IServerConversationStatus, IServerRTCRoomEntry, IServerUserSetting, ISetConversationStatusOptions, IStorage, ITagInfo, ITagListener, ITagParam, ITagStatus, ITypingInfo, ITypingMessage, ITypingUser, IUpdatedConversation, IUpdatedExpansion, IUploadAuth, IUserProfile, IWatcher, IWebSocket, ItypingStateListener, KVString, LiveRole, LiveType, LogLevel, LogType, Logger, MAX_MESSAGE_CONTENT_BYTES, MINI_COMET_CONNECT_URIS, MINI_SOCKET_CONNECT_URIS, MentionedType, MessageBlockType, MessageDirection, MessageType, NAVI_CACHE_DURATION, NAVI_REQ_TIMEOUT, NotificationStatus, PING_REQ_TIMEOUT, PUBLIC_CLOUD_NAVI_URIS, PluginContext, RCAssertError, RTCApiType, RTCIdentityChangeType, RTCJoinType, RTCMode, RTCPluginContext, ReceivedStatus, SEND_MESSAGE_TYPE_OPTION, STATUS_MESSAGE, STORAGE_ROOT_KEY, TagChangeType, UploadMethod, VersionManage, WEB_SOCKET_TIMEOUT, WebSocketChannel, appendUrl, assert, cloneByJSON, forEach, formatConnectResponseCode, getBrowser, getMimeKey, getUploadFileName, indexOf, isArray, isArrayBuffer, isBoolean, isFunction, isHttpUrl, isInObject, isInclude, isNull, isNumber, isObject, isString, isUndefined, isValidChrmEntryKey, isValidChrmEntryValue, isValidConversationType, isValidFileType, map, notEmptyArray, notEmptyObject, notEmptyString, pushConfigsToJSON, pushJSONToConfigs, todo, usingCppEngine, validate, version };
5967
+ export { AEngine, ANavi, APIContext, AppStorage, AssertRules, CONNECTION_TYPE, CPP_PROTOCAL_MSGTYPE_OPTION, CallLibMsgType, ChatroomEntryType, ChatroomUserChangeType as ChatroomMemberChangeType, CometChannel, ConnectResultCode, ConnectionStatus, ConversationType, DelayTimer, ErrorCode, EventEmitter, FileType, HttpMethod, IAPIContextOption, IAsyncRes, IBaseConversationInfo, IBlockedMessageInfo, ICancelRoomPKOptions, IChatRoomEntries, IChatRoomEntry, IChatroomEntries, IChatroomEntry, IChatroomInfo, IChatroomListener, IChatroomListenerData, IChrmKVEntries, IChrmKVEntry, IConnectResult, IConnectionStatusListener, IConversationOption, IConversationState, IConversationStateListener, IConversationTag, IConversationTagListener, IDataChannelWatcher, IDeletedExpansion, IEndRoomPKOptions, IEngine, IEngineWatcher, IEventListener, IExpansionListener, IExpansionListenerData, IExpansionMsgContent, IExtraMethod, IInsertMsgOptions, IJoinRTCRoomData, ILocalReadReceiptInfo, ILocalTagStatus, IM_COMET_PULLMSG_TIMEOUT, IM_PING_INTERVAL_TIME, IM_PING_MIN_TIMEOUT, IM_PING_TIMEOUT, IM_SIGNAL_TIMEOUT, IMessageListnenr, IMessageReader, IMessageReaderResponse, IMetionedData, INaviInfo, IPluginGenerator, IPromiseResult, IPushConfig, IRTCInnerListener, IRTCJoinedInfo, IRTCRoomInfo, IRTCUserData, IRTCUsers, IReadReceiptInfo, IRecallMsgOptions, IReceivedConversation, IReceivedConversationByTag, IReceivedMessage, IRemoveChatRoomEntries, IRemoveChatRoomEntry, IRemoveChatroomEntries, IRemoveChatroomEntry, IReqRoomPKOptions, IRequest, IResRoomPKOptions, IResponse, IRtcTokenData, IRuntime, ISendExMsgOptions, ISendMsgOptions, IServerConversationStatus, IServerRTCRoomEntry, IServerUserSetting, ISetConversationStatusOptions, IStorage, ITagInfo, ITagListener, ITagParam, ITagStatus, ITypingInfo, ITypingMessage, ITypingUser, IUpdatedConversation, IUpdatedExpansion, IUploadAuth, IUserProfile, IWatcher, IWebSocket, ItypingStateListener, KVString, LiveRole, LiveType, LogLevel, LogType, Logger, MAX_MESSAGE_CONTENT_BYTES, MINI_COMET_CONNECT_URIS, MINI_SOCKET_CONNECT_URIS, MentionedType, MessageBlockType, MessageDirection, MessageType, NAVI_CACHE_DURATION, NAVI_REQ_TIMEOUT, NotificationStatus, PING_REQ_TIMEOUT, PUBLIC_CLOUD_NAVI_URIS, PluginContext, RCAssertError, RTCApiType, RTCIdentityChangeType, RTCJoinType, RTCMode, RTCPluginContext, ReceivedStatus, SEND_MESSAGE_TYPE_OPTION, STATUS_MESSAGE, STORAGE_ROOT_KEY, TagChangeType, UploadMethod, VersionManage, WEB_SOCKET_TIMEOUT, WebSocketChannel, appendUrl, assert, cloneByJSON, forEach, formatConnectResponseCode, getBrowser, getMimeKey, getUploadFileName, indexOf, isArray, isArrayBuffer, isBoolean, isFunction, isHttpUrl, isInObject, isInclude, isNull, isNumber, isObject, isString, isUndefined, isValidChrmEntryKey, isValidChrmEntryValue, isValidConversationType, isValidFileType, map, notEmptyArray, notEmptyObject, notEmptyString, pushConfigsToJSON, pushJSONToConfigs, todo, usingCppEngine, validate, version };