@rongcloud/engine 5.3.4 → 5.4.2-beem.1

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.
Files changed (4) hide show
  1. package/index.d.ts +2127 -1864
  2. package/index.esm.js +1 -18
  3. package/index.js +1 -18
  4. package/package.json +1 -1
package/index.d.ts CHANGED
@@ -365,117 +365,34 @@ declare enum OperateStatus {
365
365
  typing = 0
366
366
  }
367
367
 
368
- interface IConversationOption {
369
- conversationType: ConversationType;
370
- targetId: string;
371
- channelId?: string;
372
- }
373
- interface IServerRTCRoomEntry {
374
- key: string;
375
- value: string;
376
- status: number;
377
- timestamp: number;
378
- uid: string;
379
- }
380
- interface IChrmKVEntry {
381
- key: string;
382
- value?: string;
383
- isSendNotification?: boolean;
384
- notificationExtra?: string;
385
- isOverwrite?: boolean;
386
- isAutoDelete?: boolean;
387
- timestamp?: number;
388
- userId?: string;
389
- type?: number;
390
- isDeleted?: boolean;
391
- version?: number;
392
- }
393
- interface IChrmKVEntries {
394
- entries: {
395
- key: string;
396
- value?: string;
397
- timestamp?: number;
398
- version?: number;
399
- }[];
400
- notificationExtra?: string;
401
- isOverwrite?: boolean;
402
- isAutoDelete?: boolean;
403
- timestamp?: number;
404
- userId?: string;
405
- type?: number;
406
- isDeleted?: boolean;
407
- }
408
- interface IServerConversationStatus {
409
- conversationType: number;
410
- targetId: string;
411
- updatedTime?: number;
412
- notificationStatus?: number;
413
- notificationLevel?: number;
414
- isTop?: boolean;
415
- type?: number;
416
- tags?: IConversationTag[];
417
- channelId?: string;
418
- }
419
- interface IUserSettingItem {
420
- targetId: number;
421
- type: number;
422
- key: string;
423
- value: any;
424
- version: number;
425
- status: number;
426
- tags: IConversationTag[];
427
- }
428
- interface IServerUserSetting {
429
- settings: {
430
- [key: string]: IUserSettingItem;
431
- };
432
- version: number;
433
- }
434
- interface ISyncMsgArgs {
435
- inboxTime: number;
436
- sendboxTime: number;
437
- broadcastSyncTime?: number;
438
- }
439
- interface IGetMsgOption {
440
- timestamp?: number;
441
- count?: number;
442
- order?: number;
443
- channelId?: string;
444
- }
445
- interface IGetConversationListOption {
446
- type?: number;
447
- count?: number;
448
- startTime?: number;
449
- order?: 0 | 1;
450
- }
451
- interface IClearMsgOption {
452
- timestamp?: number;
453
- }
454
-
455
- /**
456
- * 聊天室 kv 存储操作类型. 对方操作, 己方收到消息(RC:chrmKVNotiMsg)中会带入此值. 根据此值判断是删除还是更新
457
- */
458
- declare enum ChatroomEntryType {
459
- UPDATE = 1,
460
- DELETE = 2
461
- }
462
-
463
368
  /**
464
- * 消息被拦截类型
369
+ * 文件类型
465
370
  */
466
- declare enum MessageBlockType {
467
- /*!
468
- 全局敏感词:命中了融云内置的全局敏感词
469
- */
470
- GLOBAL = 1,
471
- /*!
472
- 自定义敏感词拦截:命中了客户在融云自定义的敏感词
371
+ declare enum FileType {
372
+ /**
373
+ * 图片文件
374
+ */
375
+ IMAGE = 1,
376
+ /**
377
+ * 声音文件
378
+ */
379
+ AUDIO = 2,
380
+ /**
381
+ * 视频文件
382
+ */
383
+ VIDEO = 3,
384
+ /**
385
+ * 非媒体文件
386
+ */
387
+ FILE = 4,
388
+ /**
389
+ * 小视频类型
473
390
  */
474
- CUSTOM = 2,
475
- /*!
476
- 第三方审核拦截:命中了第三方(数美)或模板路由决定不下发的状态
391
+ SIGHT = 5,
392
+ /**
393
+ * 合并转发
477
394
  */
478
- THIRD_PARTY = 3
395
+ COMBINE_HTML = 6
479
396
  }
480
397
 
481
398
  declare enum MessageDirection {
@@ -489,1148 +406,858 @@ declare enum MessageDirection {
489
406
  RECEIVE = 2
490
407
  }
491
408
 
492
- interface IGooglePushConfig {
409
+ /**
410
+ * IM 错误码范围段
411
+ * 2 开头为 IM Server 返回错误码
412
+ * 3 开头: 30000 到 33xxx 为协议栈错误码,34001 ~ 34999 为移动端自定错误码
413
+ * 备注:iOS 与 Android 错误码一致。Web 与移动端一致的错误码,也用此片段,比如 34008 (消息不支持扩展)
414
+ * 35001 ~ 39999 为 Web 端错误码 备注:由于 Web IM 历史版本 35xxx 36xxx 37xxx 38xxx 39xxxx 都占用过,所以错误码段范围较大
415
+ */
416
+ declare enum ErrorCode {
417
+ /** 超时 */
418
+ TIMEOUT = -1,
493
419
  /**
494
- * 分组ID
420
+ * 未知原因失败。
495
421
  */
496
- collapseKey?: string;
422
+ UNKNOWN = -2,
423
+ /** 参数错误 */
424
+ PARAMETER_ERROR = -3,
425
+ /** 未实现的方法定义,在应用层调用 callExtra 传入无法识别的方法名时抛出 */
426
+ EXTRA_METHOD_UNDEFINED = -4,
427
+ /** 主进程内方法错误 */
428
+ MAIN_PROCESS_ERROR = -5,
497
429
  /**
498
- *
430
+ * 参数变更
499
431
  */
500
- imageUrl?: string;
432
+ PARAMETER_CHANGED = -6,
501
433
  /**
502
- *优先级
434
+ * 成功
503
435
  */
504
- priority?: 'high' | 'normal';
505
- }
506
- interface IiOSPushConfig {
436
+ SUCCESS = 0,
507
437
  /**
508
- * iOS 用于通知分组的 id
438
+ * 群组 Id 无效
509
439
  */
510
- threadId?: string;
440
+ RC_DISCUSSION_GROUP_ID_INVALID = 20407,
511
441
  /**
512
- * iOS 用于通知覆盖的 id
442
+ * 发送频率过快
513
443
  */
514
- apnsCollapseId?: string;
444
+ SEND_FREQUENCY_TOO_FAST = 20604,
515
445
  /**
516
- * iOS 分类,如果不设置后台默认取消息类型字符串,如RC:TxtMsg
446
+ * 不在讨论组。
517
447
  */
518
- category?: string;
448
+ NOT_IN_DISCUSSION = 21406,
519
449
  /**
520
- * 和 category 对应
450
+ * 群组被禁言
521
451
  */
522
- richMediaUri?: string;
523
- }
524
- interface IAndroidPushConfig {
452
+ FORBIDDEN_IN_GROUP = 22408,
453
+ RECALL_MESSAGE = 25101,
525
454
  /**
526
- * Android 的通知 id
455
+ * 不在群组。
527
456
  */
528
- notificationId?: string;
457
+ NOT_IN_GROUP = 22406,
529
458
  /**
530
- * 小米的 channelId
459
+ * 不在聊天室。
531
460
  */
532
- channelIdMi?: string;
461
+ NOT_IN_CHATROOM = 23406,
533
462
  /**
534
- * 华为的 channelId
463
+ *聊天室被禁言
535
464
  */
536
- channelIdHW?: string;
465
+ FORBIDDEN_IN_CHATROOM = 23408,
537
466
  /**
538
- * OPPO 的 channelId
467
+ * 聊天室中成员被踢出
539
468
  */
540
- channelIdOPPO?: string;
469
+ RC_CHATROOM_USER_KICKED = 23409,
541
470
  /**
542
- * vivo 的类型
471
+ * 聊天室不存在
543
472
  */
544
- typeVivo?: string;
473
+ RC_CHATROOM_NOT_EXIST = 23410,
545
474
  /**
546
- * google FCM 的推送配置
547
- */
548
- googleConfig?: IGooglePushConfig;
549
- }
550
- interface IPushConfig {
475
+ * 聊天室成员已满
476
+ */
477
+ RC_CHATROOM_IS_FULL = 23411,
551
478
  /**
552
- * 推送标题
553
- * 如果没有设置,会使用下面的默认标题显示规则
554
- * 默认标题显示规则:
555
- * 内置消息:单聊通知标题显示为发送者名称,群聊通知标题显示为群名称。
556
- * 自定义消息:默认不显示标题。
479
+ * 获取聊天室信息参数无效
557
480
  */
558
- pushTitle: string;
481
+ RC_CHATROOM_PATAMETER_INVALID = 23412,
559
482
  /**
560
- * 推送内容
561
- * 优先使用 IPushConfig.pushContent, 如果没有,则使用发送消息的 pushContent 参数
483
+ * 聊天室异常
562
484
  */
563
- pushContent: string;
485
+ CHATROOM_GET_HISTORYMSG_ERROR = 23413,
564
486
  /**
565
- * 远程推送附加信息
566
- * 优先使用 IPushConfig.pushData, 如果没有,则使用发送消息的 pushContent 参数
487
+ * 没有打开聊天室消息存储
567
488
  */
568
- pushData: string;
489
+ CHATROOM_NOT_OPEN_HISTORYMSG_STORE = 23414,
569
490
  /**
570
- * iOSConfig
491
+ * 聊天室 KV 设置超出最大值(已满, 默认最多设置 100 个)
571
492
  */
572
- iOSConfig?: IiOSPushConfig;
493
+ CHATROOM_KV_EXCEED = 23423,
573
494
  /**
574
- * androidConfig
495
+ * 聊天室 KV 设置失败(kv 已存在, 需覆盖设置)
575
496
  */
576
- androidConfig?: IAndroidPushConfig;
497
+ CHATROOM_KV_OVERWRITE_INVALID = 23424,
577
498
  /**
578
- * 是否显示推送标题. 仅针对 iOS 平台有效
499
+ * 聊天室 KV 存储功能没有开通
579
500
  */
580
- disablePushTitle: boolean;
501
+ CHATROOM_KV_STORE_NOT_OPEN = 23426,
581
502
  /**
582
- * 是否强制推送
503
+ * 聊天室Key不存在
583
504
  */
584
- forceShowDetailContent: boolean;
505
+ CHATROOM_KEY_NOT_EXIST = 23427,
506
+ CHATROOM_KV_SET_ERROR = 23431,
585
507
  /**
586
- * 推送模板id
587
- */
588
- templateId: string;
589
- }
590
-
591
- /**
592
- * 已读回执数据结构
593
- */
594
- interface IMessageReader {
595
- readTime: number;
596
- userId: string;
597
- }
598
- interface IMessageReaderResponse {
599
- totalMemberCount: number;
600
- list: IMessageReader[];
601
- }
602
- interface ILocalReadReceiptInfo {
603
- hasRespond?: boolean;
604
- readerInfo?: {
605
- [userId: string]: number;
606
- };
607
- readCount?: number;
608
- totalCount?: number;
609
- }
610
- interface IReadReceiptInfo {
508
+ * 敏感词屏蔽
509
+ */
510
+ SENSITIVE_SHIELD = 21501,
611
511
  /**
612
- * 是否已经发送已读回执
512
+ * 消息中含敏感词且敏感词已被替换
613
513
  */
614
- hasRespond?: boolean;
514
+ SENSITIVE_REPLACE = 21502,
615
515
  /**
616
- * 已阅读用户列表(不准确)
516
+ * 加入讨论失败
617
517
  */
618
- readerList?: IMessageReader[];
518
+ JOIN_IN_DISCUSSION = 21407,
619
519
  /**
620
- * 阅读人数(不准确)
520
+ * 创建讨论组失败
621
521
  */
622
- readCount?: number;
522
+ CREATE_DISCUSSION = 21408,
623
523
  /**
624
- * 群组总人数(不准确)
524
+ * 设置讨论组邀请状态失败
625
525
  */
626
- totalCount?: number;
627
- }
628
- /**
629
- * 从服务端接收到的消息数据
630
- */
631
- interface IReceivedMessage {
526
+ INVITE_DICUSSION = 21409,
632
527
  /**
633
- * 会话的业务标识
634
- */
635
- channelId?: string;
528
+ *获取用户失败
529
+ */
530
+ GET_USERINFO_ERROR = 23407,
636
531
  /**
637
- * 会话类型
638
- * * 1: 单聊
639
- * * 3: 群聊
640
- * * 4: 聊天室
641
- * * 5: 客服会话
642
- * * 6: 系统消息
643
- * * 7: 默认关注的公众号
644
- * * 8: 手动关注的公众号
645
- * * 9: RTCLib 房间
532
+ * 在黑名单中。
646
533
  */
647
- conversationType: ConversationType;
534
+ REJECTED_BY_BLACKLIST = 405,
648
535
  /**
649
- * 会话 targetId
536
+ * 通信过程中,当前 Socket 不存在。
650
537
  */
651
- targetId: string;
538
+ RC_NET_CHANNEL_INVALID = 30001,
652
539
  /**
653
- * 消息发送者的用户 Id
540
+ * Socket 连接不可用。
654
541
  */
655
- senderUserId: string;
542
+ RC_NET_UNAVAILABLE = 30002,
656
543
  /**
657
- * 消息内容
544
+ * 通信超时。
658
545
  */
659
- content: any;
546
+ RC_MSG_RESP_TIMEOUT = 30003,
660
547
  /**
661
- * 消息结构名称,即消息类型
662
- * @example RC:TxtMsg
548
+ * 导航操作时,Http 请求失败。
663
549
  */
664
- messageType: string;
550
+ RC_HTTP_SEND_FAIL = 30004,
665
551
  /**
666
- * 服务端存储的消息 Id
552
+ * HTTP 请求失败。
667
553
  */
668
- messageUId: string;
554
+ RC_HTTP_REQ_TIMEOUT = 30005,
669
555
  /**
670
- * 消息方向是发出 or 收取
556
+ * HTTP 接收失败。
671
557
  */
672
- messageDirection: MessageDirection;
558
+ RC_HTTP_RECV_FAIL = 30006,
673
559
  /**
674
- * 是否为离线消息
560
+ * 导航操作的 HTTP 请求,返回不是200。
675
561
  */
676
- isOffLineMessage: boolean;
562
+ RC_NAVI_RESOURCE_ERROR = 30007,
677
563
  /**
678
- * 消息在服务器端的发送时间
564
+ * 导航数据解析后,其中不存在有效数据。
679
565
  */
680
- sentTime: number;
566
+ RC_NODE_NOT_FOUND = 30008,
681
567
  /**
682
- * 消息接收时间,该时间通过消息的 `sentTime` 值在本地进行计算得出,不推荐使用
683
- * @description 当 isOffLineMessage 为 true 时,该值无效
568
+ * 导航数据解析后,其中不存在有效 IP 地址。
684
569
  */
685
- receivedTime: number;
570
+ RC_DOMAIN_NOT_RESOLVE = 30009,
686
571
  /**
687
- * 是否存储
688
- * @default true
572
+ * 创建 Socket 失败。
689
573
  */
690
- isPersited: boolean;
574
+ RC_SOCKET_NOT_CREATED = 30010,
691
575
  /**
692
- * 是否计数
693
- * @default true
576
+ * Socket 被断开。
694
577
  */
695
- isCounted: boolean;
578
+ RC_SOCKET_DISCONNECTED = 30011,
696
579
  /**
697
- * 是否为 @ 消息
580
+ * PING 操作失败。
698
581
  */
699
- isMentioned: boolean;
582
+ RC_PING_SEND_FAIL = 30012,
700
583
  /**
701
- * 消息是否静默
702
- * @description 静默消息不会发送 Push 信息和本地通知提醒
584
+ * PING 超时。
703
585
  */
704
- disableNotification: boolean;
586
+ RC_PONG_RECV_FAIL = 30013,
705
587
  /**
706
- * 是否是状态消息
588
+ * 消息发送失败。
707
589
  */
708
- isStatusMessage: boolean;
590
+ RC_MSG_SEND_FAIL = 30014,
709
591
  /**
710
- * 是否支持消息扩展存储
711
- */
712
- canIncludeExpansion: boolean;
592
+ * JSON 后的消息体超限, 目前最大 128kb
593
+ */
594
+ RC_MSG_CONTENT_EXCEED_LIMIT = 30016,
713
595
  /**
714
- * 消息携带的扩展存储
715
- */
716
- expansion: {
717
- [key: string]: any;
718
- } | null;
596
+ * 做 connect 连接时,收到的 ACK 超时。
597
+ */
598
+ RC_CONN_ACK_TIMEOUT = 31000,
719
599
  /**
720
- * 消息接收状态
721
- */
722
- receivedStatus: number;
600
+ * 参数错误。
601
+ */
602
+ RC_CONN_PROTO_VERSION_ERROR = 31001,
723
603
  /**
724
- * CPP 独有字段 消息本地 ID
725
- */
726
- messageId?: number;
604
+ * 参数错误,App Id 错误。
605
+ */
606
+ RC_CONN_ID_REJECT = 31002,
727
607
  /**
728
- * CPP 独有字段 消息发送状态
729
- */
730
- sentStatus?: number;
608
+ * 服务器不可用。
609
+ */
610
+ RC_CONN_SERVER_UNAVAILABLE = 31003,
731
611
  /**
732
- * 已读回执信息(导航配置grpRRVer=1时群组类型消息内存在, 其他情况为undefined)
612
+ * Token 错误。
733
613
  */
734
- readReceiptInfo?: IReadReceiptInfo;
614
+ RC_CONN_USER_OR_PASSWD_ERROR = 31004,
735
615
  /**
736
- * 推送扩展
616
+ * websocket 鉴权失败,通常为连接后未及时发送 Ping 或接收到 Pong
737
617
  */
738
- pushConfig?: IPushConfig;
618
+ RC_CONN_NOT_AUTHRORIZED = 31005,
739
619
  /**
740
- * 超级群专有字段,是否断档,服务端收到大量消息可能会断档,所以消息存在此标志位,断档需要客户手动拉取历史消息
620
+ * 重定向,地址错误。
741
621
  */
742
- isInterrupt?: boolean;
622
+ RC_CONN_REDIRECTED = 31006,
743
623
  /**
744
- * 拉取历史消息时表示该消息是否修改过(仅超级群有效)
624
+ * NAME 与后台注册信息不一致。
745
625
  */
746
- isModifyMessage?: boolean;
747
- }
748
- interface IUserProfile {
626
+ RC_CONN_PACKAGE_NAME_INVALID = 31007,
749
627
  /**
750
- * 用户 ID
751
- */
752
- id?: string;
628
+ * APP 被屏蔽、删除或不存在。
629
+ */
630
+ RC_CONN_APP_BLOCKED_OR_DELETED = 31008,
753
631
  /**
754
- * 用户名
632
+ * 用户被屏蔽。
755
633
  */
756
- name?: string;
634
+ RC_CONN_USER_BLOCKED = 31009,
757
635
  /**
758
- * 用户头像地址
759
- * @deprecated
636
+ * Disconnect,由服务器返回,比如用户互踢。
760
637
  */
761
- portraitUri?: string;
638
+ RC_DISCONN_KICK = 31010,
762
639
  /**
763
- * user info 中附加信息
640
+ * Disconnect,由服务器返回,比如用户互踢。
764
641
  */
765
- extra?: string;
642
+ RC_DISCONN_EXCEPTION = 31011,
766
643
  /**
767
- * 用户头像地址(向移动端兼容)
644
+ * 开启禁止把已在线客户端踢下线开关后,该错误码标识已有同类型端在线,禁止链接;
768
645
  */
769
- portrait?: string;
770
- }
771
- interface IOperateInfo {
772
- targetId: string;
773
- channelId?: string;
774
- userId: string;
775
- operationType: OperateStatus;
776
- operationTime?: number;
777
- }
778
- interface IOperateSummary {
779
- targetId: string;
780
- channelId?: string;
781
- count: number;
782
- operationType: OperateStatus;
783
- }
784
- interface IOperateStatusNotify {
785
- conversationType: ConversationType;
786
- hasInfo: boolean;
787
- hasSummary: boolean;
788
- info: IOperateInfo[];
789
- summary: IOperateSummary[];
790
- }
791
- interface IRecallMsgOptions {
646
+ RC_DISCONN_SAME_CLIENT_ON_LINE = 31023,
792
647
  /**
793
- * 会话组织机构标识
794
- * 默认值未 空字符串
795
- */
796
- channelId: string;
648
+ * app 验证Token 验证不通过。所有内部超时,访问失败,返回给客户端sdk都是验证不通过,由服务端日志去看具体是那种失败。
649
+ */
650
+ RC_APP_AUTH_NOT_PASS = 31026,
797
651
  /**
798
- * 发送消息携带的用户信息
799
- */
800
- user?: IUserProfile;
652
+ * One Time Password 已经被使用过
653
+ */
654
+ RC_OTP_USED = 31027,
801
655
  /**
802
- * Push 信息
803
- */
804
- pushContent?: string;
656
+ * token平台验证失败
657
+ */
658
+ RC_PLATFORM_ERROR = 31028,
805
659
  /**
806
- * 原消息体
807
- */
808
- oriContent?: any;
660
+ * 协议层内部错误。query,上传下载过程中数据错误。
661
+ */
662
+ RC_QUERY_ACK_NO_DATA = 32001,
809
663
  /**
810
- * 是否发送静默消息
811
- * @description
812
- * 当值为 `true` 时,服务器将不会发送 Push 信息,移动端也不会弹出本地通知提醒
813
- */
814
- disableNotification?: boolean;
664
+ * 协议层内部错误。
665
+ */
666
+ RC_MSG_DATA_INCOMPLETE = 32002,
815
667
  /**
816
- * 移动端推送配置
817
- */
818
- pushConfig?: IPushConfig;
668
+ * 未调用 init 初始化函数。
669
+ */
670
+ BIZ_ERROR_CLIENT_NOT_INIT = 33001,
819
671
  /**
820
- * 其他拓展信息
821
- */
822
- extra?: string;
672
+ * 数据库初始化失败。
673
+ */
674
+ BIZ_ERROR_DATABASE_ERROR = 33002,
823
675
  /**
824
- * 是否删除原始消息(在移动端会使用到),为 true 时移动端会不显示小灰条提示
676
+ * 传入参数无效。
825
677
  */
826
- isDelete?: boolean;
827
- }
828
- interface IRecallMsgContent {
829
- conversationType: number;
830
- targetId: string;
831
- sentTime: number;
832
- messageUId: string;
678
+ BIZ_ERROR_INVALID_PARAMETER = 33003,
833
679
  /**
834
- * 会话组织机构标识
835
- * 默认值未 空字符串
836
- */
837
- channelId: string;
680
+ * 通道无效。
681
+ */
682
+ BIZ_ERROR_NO_CHANNEL = 33004,
838
683
  /**
839
- * 其他拓展信息
840
- */
841
- extra?: string;
684
+ * 重新连接成功。
685
+ */
686
+ BIZ_ERROR_RECONNECT_SUCCESS = 33005,
842
687
  /**
843
- * 发送消息携带的用户信息
844
- */
845
- user?: IUserProfile;
688
+ * 连接中,再调用 connect 被拒绝。
689
+ */
690
+ BIZ_ERROR_CONNECTING = 33006,
846
691
  /**
847
- * 是否删除原始消息(在移动端会使用到),为 true 时移动端会不显示小灰条提示
692
+ * 消息漫游服务未开通
848
693
  */
849
- isDelete?: boolean;
850
- }
851
- /**
852
- * 发送消息时的可选项信息
853
- */
854
- interface ISendMsgOptions {
694
+ MSG_ROAMING_SERVICE_UNAVAILABLE = 33007,
855
695
  /**
856
- * 消息类型,即消息结构的 ObjectName
696
+ * 消息存入本地数据库失败
857
697
  */
858
- messageType: string;
698
+ MSG_INSERT_ERROR = 33008,
859
699
  /**
860
- * 消息内容
700
+ * 删除本地消息失败
861
701
  */
862
- content: {
863
- /**
864
- * 消息内容 key-value,最终会进行 JSON 序列化后发送
865
- */
866
- [key: string]: any;
867
- /**
868
- * 消息可携带的用户数据
869
- */
870
- user?: IUserProfile;
871
- /**
872
- * 其他拓展信息
873
- */
874
- extra?: string;
875
- };
702
+ MSG_DEL_ERROR = 33009,
876
703
  /**
877
- * 是否存储
878
- * @description 只在发送未注册过的自定义消息时有效,否则使用注册时的配置
704
+ * 标签已存在
879
705
  */
880
- isPersited?: boolean;
706
+ TAG_EXISTS = 33101,
881
707
  /**
882
- * 是否计数
883
- * @description 只在发送未注册过的自定义消息时有效,否则使用注册时的配置
708
+ * 标签不存在
884
709
  */
885
- isCounted?: boolean;
710
+ TAG_NOT_EXIST = 33100,
886
711
  /**
887
- * 是否是状态消息,一般为无需注册的自定义消息
888
- * @description
889
- * 1. 状态消息只有 pub,没有 ack 应答
890
- * 2. 状态消息默认不存储,不计数,`isPersited` 与 `isCounted` 配置将失效
712
+ * 会话中不存在此标签
891
713
  */
892
- isStatusMessage?: boolean;
714
+ NO_TAG_IN_CONVER = 33102,
893
715
  /**
894
- * 是否发送静默消息
895
- * @description
896
- * 当值为 `true` 时,服务器将不会发送 Push 信息,移动端也不会弹出本地通知提醒
716
+ * 删除会话失败
897
717
  */
898
- disableNotification?: boolean;
718
+ CONVER_REMOVE_ERROR = 34001,
899
719
  /**
900
- * Push 信息
720
+ *拉取历史消息
901
721
  */
902
- pushContent?: string;
722
+ CONVER_GETLIST_ERROR = 34002,
903
723
  /**
904
- * Push 通知携带的附加信息
724
+ * 会话指定异常
905
725
  */
906
- pushData?: string;
726
+ CONVER_SETOP_ERROR = 34003,
907
727
  /**
908
- * 是否为 @ 消息,只当 conversationType 值为 `ConversationType.GROUP` 时有效
728
+ * 获取会话未读消息总数失败
909
729
  */
910
- isMentioned?: boolean;
730
+ CONVER_TOTAL_UNREAD_ERROR = 34004,
911
731
  /**
912
- * `@` 消息类型
913
- * @description `1: @ 所有人 2: @ 指定用户`
732
+ * 获取指定会话类型未读消息数异常
914
733
  */
915
- mentionedType?: 1 | 2;
734
+ CONVER_TYPE_UNREAD_ERROR = 34005,
916
735
  /**
917
- * 被 @ 的用户 Id 列表,当 `mentionedType` 值为 `1` 时,该值可为空
736
+ * 获取指定用户ID&会话类型未读消息数异常
918
737
  */
919
- mentionedUserIdList?: string[];
738
+ CONVER_ID_TYPE_UNREAD_ERROR = 34006,
920
739
  /**
921
- * 用于发送群定向消息,只当 conversationType 值为 `ConversationType.GROUP` 时有效
740
+ * 扩展存储 key value 超出限制 (错误码与移动端对齐)
922
741
  */
923
- directionalUserIdList?: string[];
742
+ EXPANSION_LIMIT_EXCEET = 34010,
924
743
  /**
925
- * 当对方为 iOS 设备且未在线时,其将收到 Voip Push. 此配置对 Android 无影响
744
+ * 消息不支持扩展,原消息 canIncludeExpansion 值为 false (错误码与移动端对齐)
926
745
  */
927
- isVoipPush?: boolean;
746
+ MESSAGE_KV_NOT_SUPPORT = 34008,
928
747
  /**
929
- * 消息是否支持拓展内容
748
+ * 会话数量超出上限
930
749
  */
931
- canIncludeExpansion?: boolean;
750
+ CONVER_OUT_LIMIT_ERROR = 34013,
932
751
  /**
933
- * 消息拓展内容数据
752
+ * 获取会话失败
934
753
  */
935
- expansion?: {
936
- [key: string]: string;
937
- };
754
+ CONVER_GET_ERROR = 35021,
938
755
  /**
939
- * 黑/白名单
940
- * @todo 功能未知,需确认
756
+ * 群组信息异常
941
757
  */
942
- isFilerWhiteBlacklist?: boolean;
758
+ GROUP_SYNC_ERROR = 35001,
943
759
  /**
944
- * 移动端推送配置
945
- */
946
- pushConfig?: IPushConfig;
760
+ * 匹配群信息异常
761
+ */
762
+ GROUP_MATCH_ERROR = 35002,
947
763
  /**
948
- * 会话业务标识
949
- * @description
950
- * 20 个字符长度限制
951
- */
952
- channelId?: string;
764
+ * 已读回执方法调用错误(导航开关为1时调用新接口,否则调用sendMessage)
765
+ */
766
+ READ_RECEIPT_ERROR = 35003,
953
767
  /**
954
- * 客户端的消息标识
768
+ * 公有云包不允许连接私有云环境
955
769
  */
956
- messageId?: string;
770
+ PACKAGE_ENVIRONMENT_ERROR = 35006,
957
771
  /**
958
- * 超级群专有字段,是否断档,若断档需要客户判断是否拉取
772
+ * 已连接或者内部重连中,不允许调用重连,需先调用 disconnect 方法
959
773
  */
960
- isInterrupt?: boolean;
961
- }
962
- interface IInsertMsgOptions {
963
- senderUserId: string;
964
- messageType: string;
965
- content: string;
966
- messageDirection: number;
967
- readStatus?: number;
968
- sentStatus?: number;
969
- sentTime?: number;
970
- searchContent?: string;
971
- isUnread?: boolean;
972
- messageUId?: string;
973
- disableNotification?: boolean;
974
- canIncludeExpansion?: boolean;
975
- expansionMsg?: string;
976
- channelId: string;
977
- }
978
- interface ISendExMsgOptions {
979
- channelId: string;
980
- conversationType: ConversationType;
981
- targetId: string;
774
+ CAN_NOT_RECONNECT = 35007,
982
775
  /**
983
- * 消息 ID
984
- */
985
- messageUId: string;
776
+ * 不支持的平台类型,一般小程序或 PC 未开通
777
+ */
778
+ SERVER_UNAVAILABLE = 35008,
986
779
  /**
987
- * 原始消息是否支持扩展的字段
988
- */
989
- canIncludeExpansion: boolean;
780
+ * Web 端设置安全域名后,连接端域名不在安全域名范围内
781
+ */
782
+ HOSTNAME_ERROR = 35009,
990
783
  /**
991
- * 删除的 keys
992
- */
993
- keys?: string[];
784
+ * 开启`禁止把已在线客户端踢下线`开关后,该错误码标识已有同类型端在线,禁止链接
785
+ */
786
+ HAS_OHTER_SAME_CLIENT_ON_LINE = 35010,
994
787
  /**
995
- * 扩展对象
996
- */
997
- expansion?: {
998
- [key: string]: string;
999
- };
788
+ * IM 在初次连接成功后,需立即同步消息,标记上线,然后获取全量超级群会话列表,列表同步完成前,所有超级群相关功能接口应不可用
789
+ */
790
+ METHOD_NOT_AVAILABLE = 35011,
1000
791
  /**
1001
- * 是否删除所有扩展
1002
- */
1003
- removeAll?: boolean;
792
+ * 该功能不支持超级群
793
+ */
794
+ METHOD_NOT_SUPPORT = 35012,
1004
795
  /**
1005
- * 原始消息的扩展
1006
- */
1007
- originExpansion?: {
1008
- [key: string]: string;
1009
- } | null;
1010
- }
1011
- interface IUltraExMsgOptions {
1012
- canIncludeExpansion: boolean;
1013
- channelId: string;
1014
- conversationType: ConversationType;
1015
- targetId: string;
1016
- messageUId: string;
1017
- sendTime: number;
796
+ * 消息数量没在范围内
797
+ */
798
+ MSG_LIMIT_ERROR = 35013,
1018
799
  /**
1019
- * 删除的 keys
1020
- */
1021
- keys?: string[];
800
+ * 该功能仅支持超级群
801
+ */
802
+ METHOD_ONLY_SUPPORT_ULTRA_GROUP = 35014,
1022
803
  /**
1023
- * 扩展对象
1024
- */
1025
- expansion?: {
1026
- [key: string]: string;
1027
- };
804
+ * 上传文件失败
805
+ */
806
+ UPLOAD_FILE_FAILED = 35020,
1028
807
  /**
1029
- * 是否删除所有扩展
1030
- */
1031
- removeAll?: boolean;
1032
- }
1033
- interface IUltraModifyMsgOptions {
1034
- canIncludeExpansion?: boolean;
1035
- channelId: string;
1036
- conversationType: ConversationType;
1037
- targetId: string;
1038
- messageUId: string;
1039
- sendTime: number;
808
+ * 加入聊天室Id为空
809
+ */
810
+ CHATROOM_ID_ISNULL = 36001,
1040
811
  /**
1041
- * 消息内容
812
+ * 加入聊天室失败
1042
813
  */
1043
- content: {
1044
- /**
1045
- * 消息内容 key-value,最终会进行 JSON 序列化后发送
1046
- */
1047
- [key: string]: any;
1048
- /**
1049
- * 消息可携带的用户数据
1050
- */
1051
- user?: IUserProfile;
1052
- /**
1053
- * 其他拓展信息
1054
- */
1055
- extra?: string;
1056
- };
1057
- }
1058
- interface IUltraMsgQueryInfo {
1059
- sendTime: number;
1060
- messageUId: string;
1061
- channelId?: string;
1062
- }
1063
- interface IUltraMsgQueryOptions {
1064
- conversationType: ConversationType;
1065
- targetId: string;
1066
- messages: IUltraMsgQueryInfo[];
1067
- }
1068
- /**
1069
- * 被拦截的消息信息
1070
- */
1071
- interface IBlockedMessageInfo {
1072
- blockedMessageUId: string;
1073
- conversationType: number;
1074
- targetId: string;
1075
- channelId: string;
1076
- blockType: MessageBlockType;
1077
- extra: any;
1078
- }
1079
-
1080
- /**
1081
- * TODO: 确定对外暴露的必要性
1082
- * @deprecated
1083
- */
1084
- declare const DelayTimer: {
1085
- _delayTime: number;
814
+ CHARTOOM_JOIN_ERROR = 36002,
1086
815
  /**
1087
- * 方法并未引用,getTimer 实际返回值始终为 Date.now()
1088
- * @deprecated
816
+ * 拉取聊天室历史消息失败
1089
817
  */
1090
- setTime: (time: number) => void;
1091
- getTime: () => number;
1092
- };
1093
-
1094
- /**
1095
- * IM 错误码范围段
1096
- * 2 开头为 IM Server 返回错误码
1097
- * 3 开头: 30000 到 33xxx 为协议栈错误码,34001 ~ 34999 为移动端自定错误码
1098
- * 备注:iOS 与 Android 错误码一致。Web 与移动端一致的错误码,也用此片段,比如 34008 (消息不支持扩展)
1099
- * 35001 ~ 39999 为 Web 端错误码 备注:由于 Web IM 历史版本 35xxx 36xxx 37xxx 38xxx 39xxxx 都占用过,所以错误码段范围较大
1100
- */
1101
- declare enum ErrorCode {
1102
- /** 超时 */
1103
- TIMEOUT = -1,
818
+ CHATROOM_HISMESSAGE_ERROR = 36003,
1104
819
  /**
1105
- * 未知原因失败。
820
+ * 聊天室 kv 未找到
1106
821
  */
1107
- UNKNOWN = -2,
1108
- /** 参数错误 */
1109
- PARAMETER_ERROR = -3,
1110
- /** 未实现的方法定义,在应用层调用 callExtra 传入无法识别的方法名时抛出 */
1111
- EXTRA_METHOD_UNDEFINED = -4,
1112
- /** 主进程内方法错误 */
1113
- MAIN_PROCESS_ERROR = -5,
822
+ CHATROOM_KV_NOT_FOUND = 36004,
1114
823
  /**
1115
- * 参数变更
824
+ * 加入黑名单异常
1116
825
  */
1117
- PARAMETER_CHANGED = -6,
826
+ BLACK_ADD_ERROR = 37001,
1118
827
  /**
1119
- * 成功
828
+ * 获得指定人员再黑名单中的状态异常
1120
829
  */
1121
- SUCCESS = 0,
1122
- RC_MSG_UNAUTHORIZED = 20406,
830
+ BLACK_GETSTATUS_ERROR = 37002,
1123
831
  /**
1124
- * 群组 Id 无效
832
+ * 移除黑名单异常
1125
833
  */
1126
- RC_DISCUSSION_GROUP_ID_INVALID = 20407,
834
+ BLACK_REMOVE_ERROR = 37003,
1127
835
  /**
1128
- * 发送频率过快
836
+ * 获取草稿失败
1129
837
  */
1130
- SEND_FREQUENCY_TOO_FAST = 20604,
838
+ DRAF_GET_ERROR = 38001,
1131
839
  /**
1132
- * 不在讨论组。
840
+ * 保存草稿失败
1133
841
  */
1134
- NOT_IN_DISCUSSION = 21406,
842
+ DRAF_SAVE_ERROR = 38002,
1135
843
  /**
1136
- * 群组被禁言
844
+ * 删除草稿失败
1137
845
  */
1138
- FORBIDDEN_IN_GROUP = 22408,
1139
- RECALL_MESSAGE = 25101,
846
+ DRAF_REMOVE_ERROR = 38003,
1140
847
  /**
1141
- * 不在群组。
848
+ * 关注公众号失败
1142
849
  */
1143
- NOT_IN_GROUP = 22406,
850
+ SUBSCRIBE_ERROR = 39001,
1144
851
  /**
1145
- * 不在聊天室。
852
+ * 方法未支持
1146
853
  */
1147
- NOT_IN_CHATROOM = 23406,
854
+ NOT_SUPPORT = 39002,
1148
855
  /**
1149
- *聊天室被禁言
856
+ * 关注公众号失败
1150
857
  */
1151
- FORBIDDEN_IN_CHATROOM = 23408,
858
+ QNTKN_FILETYPE_ERROR = 41001,
1152
859
  /**
1153
- * 聊天室中成员被踢出
860
+ * 获取七牛token失败
1154
861
  */
1155
- RC_CHATROOM_USER_KICKED = 23409,
862
+ QNTKN_GET_ERROR = 41002,
1156
863
  /**
1157
- * 聊天室不存在
864
+ * cookie被禁用
1158
865
  */
1159
- RC_CHATROOM_NOT_EXIST = 23410,
866
+ COOKIE_ENABLE = 51001,
867
+ HAVNODEVICEID = 24001,
868
+ DEVICEIDISHAVE = 24002,
869
+ FEILD = 24009,
870
+ VOIPISNULL = 24013,
871
+ NOENGINETYPE = 24010,
872
+ NULLCHANNELNAME = 24011,
873
+ VOIPDYANMICERROR = 24012,
874
+ NOVOIP = 24014,
875
+ INTERNALERRROR = 24015,
876
+ VOIPCLOSE = 24016,
877
+ ULTRA_GROUP_USER_NOT_IN_PRIVATE_CHANNEL = 24416,
1160
878
  /**
1161
- * 聊天室成员已满
879
+ * 己方取消已发出的通话请求
1162
880
  */
1163
- RC_CHATROOM_IS_FULL = 23411,
881
+ CANCEL = 1,
1164
882
  /**
1165
- * 获取聊天室信息参数无效
883
+ * 己方拒绝收到的通话请求
1166
884
  */
1167
- RC_CHATROOM_PATAMETER_INVALID = 23412,
885
+ REJECT = 2,
1168
886
  /**
1169
- * 聊天室异常
887
+ * 己方挂断
1170
888
  */
1171
- CHATROOM_GET_HISTORYMSG_ERROR = 23413,
889
+ HANGUP = 3,
1172
890
  /**
1173
- * 没有打开聊天室消息存储
891
+ * 己方忙碌
1174
892
  */
1175
- CHATROOM_NOT_OPEN_HISTORYMSG_STORE = 23414,
893
+ BUSYLINE = 4,
1176
894
  /**
1177
- * 聊天室 KV 设置超出最大值(已满, 默认最多设置 100 个)
895
+ * 己方未接听
1178
896
  */
1179
- CHATROOM_KV_EXCEED = 23423,
897
+ NO_RESPONSE = 5,
1180
898
  /**
1181
- * 聊天室 KV 设置失败(kv 已存在, 需覆盖设置)
899
+ * 己方不支持当前引擎
1182
900
  */
1183
- CHATROOM_KV_OVERWRITE_INVALID = 23424,
901
+ ENGINE_UN_SUPPORTED = 6,
1184
902
  /**
1185
- * 聊天室 KV 存储功能没有开通
903
+ * 己方网络出错
1186
904
  */
1187
- CHATROOM_KV_STORE_NOT_OPEN = 23426,
905
+ NETWORK_ERROR = 7,
1188
906
  /**
1189
- * 聊天室Key不存在
907
+ * 对方取消已发出的通话请求
1190
908
  */
1191
- CHATROOM_KEY_NOT_EXIST = 23427,
1192
- /*!
1193
- 聊天室设置 KV 失败,出现在两人或者多端同时操作一个 kv。
1194
- 如果出现该错误,为避免和其他端同时操作,请延时一定时间再试
1195
- */
1196
- CHATROOM_KV_SET_ERROR = 23431,
909
+ REMOTE_CANCEL = 11,
1197
910
  /**
1198
- * 敏感词屏蔽
911
+ * 对方拒绝收到的通话请求
1199
912
  */
1200
- SENSITIVE_SHIELD = 21501,
1201
- SENSITIVE_REPLACE = 21502,
913
+ REMOTE_REJECT = 12,
1202
914
  /**
1203
- * 加入讨论失败
915
+ * 通话过程对方挂断
1204
916
  */
1205
- JOIN_IN_DISCUSSION = 21407,
917
+ REMOTE_HANGUP = 13,
1206
918
  /**
1207
- * 创建讨论组失败
919
+ * 对方忙碌
1208
920
  */
1209
- CREATE_DISCUSSION = 21408,
921
+ REMOTE_BUSYLINE = 14,
1210
922
  /**
1211
- * 设置讨论组邀请状态失败
923
+ * 对方未接听
1212
924
  */
1213
- INVITE_DICUSSION = 21409,
925
+ REMOTE_NO_RESPONSE = 15,
1214
926
  /**
1215
- *获取用户失败
927
+ * 对方网络错误
1216
928
  */
1217
- GET_USERINFO_ERROR = 23407,
929
+ REMOTE_ENGINE_UN_SUPPORTED = 16,
1218
930
  /**
1219
- * 在黑名单中。
931
+ * 对方网络错误
1220
932
  */
1221
- REJECTED_BY_BLACKLIST = 405,
933
+ REMOTE_NETWORK_ERROR = 17,
1222
934
  /**
1223
- * 通信过程中,当前 Socket 不存在。
935
+ * VoIP 不可用
1224
936
  */
1225
- RC_NET_CHANNEL_INVALID = 30001,
937
+ VOIP_NOT_AVALIABLE = 18,
1226
938
  /**
1227
- * Socket 连接不可用。
939
+ * 聊天室批量设置kv部分不成功
1228
940
  */
1229
- RC_NET_UNAVAILABLE = 30002,
941
+ CHATROOM_KV_STORE_NOT_ALL_SUCCESS = 23428,
1230
942
  /**
1231
- * 通信超时。
943
+ * 聊天室设置批量kv,一次不能超过10个
1232
944
  */
1233
- RC_MSG_RESP_TIMEOUT = 30003,
945
+ CHATROOM_KV_STORE_OUT_LIMIT = 23429
946
+ }
947
+
948
+ /**
949
+ * 连接状态
950
+ */
951
+ declare enum ConnectionStatus {
1234
952
  /**
1235
- * 导航操作时,Http 请求失败。
953
+ * 连接成功。
1236
954
  */
1237
- RC_HTTP_SEND_FAIL = 30004,
955
+ CONNECTED = 0,
1238
956
  /**
1239
- * HTTP 请求失败。
957
+ * 连接中。
1240
958
  */
1241
- RC_HTTP_REQ_TIMEOUT = 30005,
959
+ CONNECTING = 1,
1242
960
  /**
1243
- * HTTP 接收失败。
961
+ * 正常断开连接。
1244
962
  */
1245
- RC_HTTP_RECV_FAIL = 30006,
963
+ DISCONNECTED = 2,
1246
964
  /**
1247
- * 导航操作的 HTTP 请求,返回不是200。
965
+ * 网络不可用。
1248
966
  */
1249
- RC_NAVI_RESOURCE_ERROR = 30007,
967
+ NETWORK_UNAVAILABLE = 3,
1250
968
  /**
1251
- * 导航数据解析后,其中不存在有效数据。
969
+ * 连接关闭。
1252
970
  */
1253
- RC_NODE_NOT_FOUND = 30008,
971
+ CONNECTION_CLOSED = 4,
1254
972
  /**
1255
- * 导航数据解析后,其中不存在有效 IP 地址。
973
+ * 用户账户在其他设备登录,本机会被踢掉线。
1256
974
  */
1257
- RC_DOMAIN_NOT_RESOLVE = 30009,
975
+ KICKED_OFFLINE_BY_OTHER_CLIENT = 6,
1258
976
  /**
1259
- * 创建 Socket 失败。
977
+ * websocket 连接失败
1260
978
  */
1261
- RC_SOCKET_NOT_CREATED = 30010,
979
+ WEBSOCKET_UNAVAILABLE = 7,
1262
980
  /**
1263
- * Socket 被断开。
981
+ * websocket 报错
1264
982
  */
1265
- RC_SOCKET_DISCONNECTED = 30011,
983
+ WEBSOCKET_ERROR = 8,
1266
984
  /**
1267
- * PING 操作失败。
985
+ * 用户被封禁
1268
986
  */
1269
- RC_PING_SEND_FAIL = 30012,
987
+ BLOCKED = 9,
1270
988
  /**
1271
- * PING 超时。
989
+ * 域名错误
1272
990
  */
1273
- RC_PONG_RECV_FAIL = 30013,
991
+ DOMAIN_INCORRECT = 12,
1274
992
  /**
1275
- * 消息发送失败。
993
+ * 服务器主动断开
1276
994
  */
1277
- RC_MSG_SEND_FAIL = 30014,
995
+ DISCONNECT_BY_SERVER = 13,
1278
996
  /**
1279
- * JSON 后的消息体超限, 目前最大 128kb
997
+ * 重定向
1280
998
  */
1281
- RC_MSG_CONTENT_EXCEED_LIMIT = 30016,
999
+ REDIRECT = 14,
1282
1000
  /**
1283
- * connect 连接时,收到的 ACK 超时。
1001
+ * appkey 不正确
1284
1002
  */
1285
- RC_CONN_ACK_TIMEOUT = 31000,
1003
+ APPKEY_IS_FAKE = 20,
1286
1004
  /**
1287
- * 参数错误。
1288
- */
1289
- RC_CONN_PROTO_VERSION_ERROR = 31001,
1005
+ * 其他端登录,本端禁止连接和重连
1006
+ */
1007
+ FORBID_RECONNECT_BY_OTHER_SAME_CLIENT = 31023,
1290
1008
  /**
1291
- * 参数错误,App Id 错误。
1009
+ * 互踢次数过多(`count > 5`),此时可能出现:在其它他设备登陆有 reconnect 逻辑
1292
1010
  */
1293
- RC_CONN_ID_REJECT = 31002,
1011
+ ULTRALIMIT = 1101,
1294
1012
  /**
1295
- * 服务器不可用。
1013
+ * 开始请求导航
1296
1014
  */
1297
- RC_CONN_SERVER_UNAVAILABLE = 31003,
1015
+ REQUEST_NAVI = 201,
1298
1016
  /**
1299
- * Token 错误。
1017
+ * 请求导航结束
1300
1018
  */
1301
- RC_CONN_USER_OR_PASSWD_ERROR = 31004,
1019
+ RESPONSE_NAVI = 202,
1302
1020
  /**
1303
- * websocket 鉴权失败,通常为连接后未及时发送 Ping 或接收到 Pong
1021
+ * 请求导航失败
1304
1022
  */
1305
- RC_CONN_NOT_AUTHRORIZED = 31005,
1023
+ RESPONSE_NAVI_ERROR = 203,
1306
1024
  /**
1307
- * 重定向,地址错误。
1025
+ * 请求导航超时
1308
1026
  */
1309
- RC_CONN_REDIRECTED = 31006,
1027
+ RESPONSE_NAVI_TIMEOUT = 204
1028
+ }
1029
+
1030
+ declare enum ReceivedStatus {
1310
1031
  /**
1311
- * NAME 与后台注册信息不一致。
1312
- */
1313
- RC_CONN_PACKAGE_NAME_INVALID = 31007,
1032
+ * 已读
1033
+ */
1034
+ READ = 1,
1314
1035
  /**
1315
- * APP 被屏蔽、删除或不存在。
1316
- */
1317
- RC_CONN_APP_BLOCKED_OR_DELETED = 31008,
1036
+ * 已听
1037
+ */
1038
+ LISTENED = 2,
1318
1039
  /**
1319
- * 用户被屏蔽。
1320
- */
1321
- RC_CONN_USER_BLOCKED = 31009,
1040
+ * 已下载
1041
+ */
1042
+ DOWNLOADED = 4,
1322
1043
  /**
1323
- * Disconnect,由服务器返回,比如用户互踢。
1324
- */
1325
- RC_DISCONN_KICK = 31010,
1044
+ * 该消息已经被其他登录的多端收取过。( 即该消息已经被其他端收取过后。当前端才登录,并重新拉取了这条消息。客户可以通过这个状态更新 UI,比如不再提示 )
1045
+ */
1046
+ RETRIEVED = 8,
1326
1047
  /**
1327
- * Disconnect,由服务器返回,比如用户互踢。
1328
- */
1329
- RC_DISCONN_EXCEPTION = 31011,
1048
+ * 未读
1049
+ */
1050
+ UNREAD = 0
1051
+ }
1052
+
1053
+ /**
1054
+ * CMP/Comet 服务连接应答码
1055
+ */
1056
+ declare const ConnectResultCode: {
1330
1057
  /**
1331
- * 开启禁止把已在线客户端踢下线开关后,该错误码标识已有同类型端在线,禁止链接;
1058
+ * 连接成功
1332
1059
  */
1333
- RC_DISCONN_SAME_CLIENT_ON_LINE = 31023,
1060
+ ACCEPTED: number;
1334
1061
  /**
1335
- * app 验证Token 验证不通过。所有内部超时,访问失败,返回给客户端sdk都是验证不通过,由服务端日志去看具体是那种失败。
1062
+ * 协议版本不匹配
1063
+ * @description 暂未使用
1336
1064
  */
1337
- RC_APP_AUTH_NOT_PASS = 31026,
1065
+ UNACCEPTABLE_PROTOCOL_VERSION: number;
1338
1066
  /**
1339
- * One Time Password 已经被使用过
1067
+ * 客户端(移动端 TCP 连接建立时)`info` 字段格式错误
1068
+ * @description 格式:`{平台类型}-{设备信息}-{sdk版本}`。
1069
+ * 其中设备信息为:{手机类型}{手机型号}{网络类型,4G/WIFI}{运营商标识, 移动/电信/联通}
1340
1070
  */
1341
- RC_OTP_USED = 31027,
1071
+ IDENTIFIER_REJECTED: number;
1342
1072
  /**
1343
- * token平台验证失败
1073
+ * 不支持的平台类型,一般小程序或 PC 未开通
1344
1074
  */
1345
- RC_PLATFORM_ERROR = 31028,
1075
+ SERVER_UNAVAILABLE: number;
1346
1076
  /**
1347
- * 协议层内部错误。query,上传下载过程中数据错误。
1077
+ * Token无法解析,或Token已过期
1348
1078
  */
1349
- RC_QUERY_ACK_NO_DATA = 32001,
1079
+ TOKEN_INCORRECT: number;
1350
1080
  /**
1351
- * 协议层内部错误。
1081
+ * 防黑产规则相关应答
1352
1082
  */
1353
- RC_MSG_DATA_INCOMPLETE = 32002,
1083
+ NOT_AUTHORIZED: number;
1354
1084
  /**
1355
- * 未调用 init 初始化函数。
1085
+ * 服务重定向,一般服务扩缩容时,落点已经改变,此时 userId 链接到旧的节点时,会触发该错误。
1086
+ * 客户端收到该应答后须重新访问导航,重新获取 CMP 地址
1356
1087
  */
1357
- BIZ_ERROR_CLIENT_NOT_INIT = 33001,
1088
+ REDIRECT: number;
1358
1089
  /**
1359
- * 数据库初始化失败。
1090
+ * 暂未使用
1360
1091
  */
1361
- BIZ_ERROR_DATABASE_ERROR = 33002,
1092
+ PACKAGE_ERROR: number;
1362
1093
  /**
1363
- * 传入参数无效。
1094
+ * 该 AppKey 已经封禁或删除
1364
1095
  */
1365
- BIZ_ERROR_INVALID_PARAMETER = 33003,
1096
+ APP_BLOCK_OR_DELETE: number;
1366
1097
  /**
1367
- * 通道无效。
1098
+ * 该用户 ID 已经被封禁
1368
1099
  */
1369
- BIZ_ERROR_NO_CHANNEL = 33004,
1100
+ BLOCK: number;
1370
1101
  /**
1371
- * 重新连接成功。
1102
+ * Token 已过期,暂未使用
1372
1103
  */
1373
- BIZ_ERROR_RECONNECT_SUCCESS = 33005,
1104
+ TOKEN_EXPIRE: number;
1374
1105
  /**
1375
- * 连接中,再调用 connect 被拒绝。
1106
+ * Token 中携带 deviceId 时,检测 Token 中 deviceId 与链接设备 deviceId 不一致
1376
1107
  */
1377
- BIZ_ERROR_CONNECTING = 33006,
1108
+ DEVICE_ERROR: number;
1378
1109
  /**
1379
- * 消息漫游服务未开通
1110
+ * Web 端设置安全域名后,连接端域名不在安全域名范围内
1380
1111
  */
1381
- MSG_ROAMING_SERVICE_UNAVAILABLE = 33007,
1382
- MSG_INSERT_ERROR = 33008,
1383
- MSG_DEL_ERROR = 33009,
1112
+ HOSTNAME_ERROR: number;
1384
1113
  /**
1385
- * 标签已存在
1114
+ * 开启`禁止把已在线客户端踢下线`开关后,该错误码标识已有同类型端在线,禁止链接
1386
1115
  */
1387
- TAG_EXISTS = 33101,
1116
+ HASOHTERSAMECLIENTONLINE: number;
1388
1117
  /**
1389
- * 标签不存在
1118
+ * 客户端连错环境,引发连接拒绝
1390
1119
  */
1391
- TAG_NOT_EXIST = 33100,
1120
+ IN_OTHER_CLUSTER: number;
1392
1121
  /**
1393
- * 会话中不存在此标签
1122
+ * app 验证Token 验证不通过。所有内部超时,访问失败,返回给客户端sdk都是验证不通过,由服务端日志去看具体是那种失败。
1394
1123
  */
1395
- NO_TAG_IN_CONVER = 33102,
1124
+ APP_AUTH_NOT_PASS: number;
1396
1125
  /**
1397
- * 删除会话失败
1126
+ * One Time Password 已经被使用过
1398
1127
  */
1399
- CONVER_REMOVE_ERROR = 34001,
1128
+ OTP_USED: number;
1400
1129
  /**
1401
- *拉取历史消息
1130
+ * token平台验证失败
1402
1131
  */
1403
- CONVER_GETLIST_ERROR = 34002,
1132
+ PLATFORM_ERROR: number;
1133
+ };
1134
+
1135
+ /**
1136
+ * 内置消息类型
1137
+ */
1138
+ declare enum MessageType {
1404
1139
  /**
1405
- * 会话指定异常
1406
- */
1407
- CONVER_SETOP_ERROR = 34003,
1140
+ * 文字消息
1141
+ */
1142
+ TextMessage = "RC:TxtMsg",
1408
1143
  /**
1409
- * 获取会话未读消息总数失败
1410
- */
1411
- CONVER_TOTAL_UNREAD_ERROR = 34004,
1144
+ * 语音消息
1145
+ */
1146
+ VOICE = "RC:VcMsg",
1412
1147
  /**
1413
- * 获取指定会话类型未读消息数异常
1414
- */
1415
- CONVER_TYPE_UNREAD_ERROR = 34005,
1148
+ * 高质量消息
1149
+ */
1150
+ HQ_VOICE = "RC:HQVCMsg",
1416
1151
  /**
1417
- * 获取指定用户ID&会话类型未读消息数异常
1418
- */
1419
- CONVER_ID_TYPE_UNREAD_ERROR = 34006,
1420
- CONVER_CLEAR_ERROR = 34007,
1152
+ * 图片消息
1153
+ */
1154
+ IMAGE = "RC:ImgMsg",
1421
1155
  /**
1422
- * 扩展存储 key value 超出限制 (错误码与移动端对齐)
1423
- */
1424
- EXPANSION_LIMIT_EXCEET = 34010,
1156
+ * GIF 消息
1157
+ */
1158
+ GIF = "RC:GIFMsg",
1425
1159
  /**
1426
- * 消息不支持扩展,原消息 canIncludeExpansion 值为 false (错误码与移动端对齐)
1427
- */
1428
- MESSAGE_KV_NOT_SUPPORT = 34008,
1429
- CLEAR_HIS_TIME_ERROR = 34011,
1160
+ * 图文消息
1161
+ */
1162
+ RICH_CONTENT = "RC:ImgTextMsg",
1430
1163
  /**
1431
- * 会话数量超出上限
1432
- */
1433
- CONVER_OUT_LIMIT_ERROR = 34013,
1434
- CONVER_GET_ERROR = 35021,
1164
+ * 位置消息
1165
+ */
1166
+ LOCATION = "RC:LBSMsg",
1435
1167
  /**
1436
- * 群组信息异常
1437
- */
1438
- GROUP_SYNC_ERROR = 35001,
1168
+ * 文件消息
1169
+ */
1170
+ FILE = "RC:FileMsg",
1439
1171
  /**
1440
- * 匹配群信息异常
1441
- */
1442
- GROUP_MATCH_ERROR = 35002,
1172
+ * 小视频消息
1173
+ */
1174
+ SIGHT = "RC:SightMsg",
1443
1175
  /**
1444
- * 已读回执方法调用错误(导航开关为1时调用新接口,否则调用sendMessage)
1445
- */
1446
- READ_RECEIPT_ERROR = 35003,
1176
+ * 合并转发消息
1177
+ */
1178
+ COMBINE = "RC:CombineMsg",
1447
1179
  /**
1448
- * 公有云包不允许连接私有云环境
1449
- */
1450
- PACKAGE_ENVIRONMENT_ERROR = 35006,
1180
+ * 聊天室 KV 通知消息
1181
+ */
1182
+ CHRM_KV_NOTIFY = "RC:chrmKVNotiMsg",
1451
1183
  /**
1452
- * 已连接或者内部重连中,不允许调用重连,需先调用 disconnect 方法
1453
- */
1454
- CAN_NOT_RECONNECT = 35007,
1184
+ * 日志通知消息
1185
+ */
1186
+ LOG_COMMAND = "RC:LogCmdMsg",
1455
1187
  /**
1456
- * 不支持的平台类型,一般小程序或 PC 未开通
1457
- */
1458
- SERVER_UNAVAILABLE = 35008,
1188
+ * 消息扩展
1189
+ */
1190
+ EXPANSION_NOTIFY = "RC:MsgExMsg",
1459
1191
  /**
1460
- * Web 端设置安全域名后,连接端域名不在安全域名范围内
1461
- */
1462
- HOSTNAME_ERROR = 35009,
1192
+ * 引用消息
1193
+ */
1194
+ REFERENCE = "RC:ReferenceMsg",
1463
1195
  /**
1464
- * 开启`禁止把已在线客户端踢下线`开关后,该错误码标识已有同类型端在线,禁止链接
1465
- */
1466
- HAS_OHTER_SAME_CLIENT_ON_LINE = 35010,
1196
+ * 撤回消息
1197
+ */
1198
+ RECALL = "RC:RcCmd",
1467
1199
  /**
1468
- * IM 在初次连接成功后,需立即同步消息,标记上线,然后获取全量超级群会话列表,列表同步完成前,所有超级群相关功能接口应不可用
1469
- */
1470
- METHOD_NOT_AVAILABLE = 35011,
1200
+ * 已读同步状态消息
1201
+ */
1202
+ READ_RECEIPT = "RC:ReadNtf",
1471
1203
  /**
1472
- * 该功能不支持超级群
1473
- */
1474
- METHOD_NOT_SUPPORT = 35012,
1204
+ * 群已读请求回执消息
1205
+ */
1206
+ READ_RECEIPT_REQUEST = "RC:RRReqMsg",
1475
1207
  /**
1476
- * 消息数量没在范围内
1477
- */
1478
- MSG_LIMIT_ERROR = 35013,
1208
+ * 群已读响应回执消息
1209
+ */
1210
+ READ_RECEIPT_RESPONSE = "RC:RRRspMsg",
1479
1211
  /**
1480
- * 该功能仅支持超级群
1481
- */
1482
- METHOD_ONLY_SUPPORT_ULTRA_GROUP = 35014,
1212
+ * 多端同步已读状态
1213
+ */
1214
+ SYNC_READ_STATUS = "RC:SRSMsg",
1483
1215
  /**
1484
- * 上传文件失败
1216
+ * 接受群已读回执更新消息(导航开关grpRRVer为1时使用)
1485
1217
  */
1486
- UPLOAD_FILE_FAILED = 35020,
1218
+ GROUP_READ_RECEIPT_REQUEST = "RC:RRMsg",
1487
1219
  /**
1488
- * 加入聊天室Id为空
1489
- */
1490
- CHATROOM_ID_ISNULL = 36001,
1220
+ * 消息送达报告,仅单聊
1221
+ */
1222
+ DELIVERED = "RC:Delivered",
1491
1223
  /**
1492
- * 加入聊天室失败
1224
+ * 消息送达状态报告,仅群聊
1493
1225
  */
1494
- CHARTOOM_JOIN_ERROR = 36002,
1495
- /**
1496
- * 拉取聊天室历史消息失败
1497
- */
1498
- CHATROOM_HISMESSAGE_ERROR = 36003,
1499
- /**
1500
- * 聊天室 kv 未找到
1501
- */
1502
- CHATROOM_KV_NOT_FOUND = 36004,
1503
- /**
1504
- * 加入黑名单异常
1505
- */
1506
- BLACK_ADD_ERROR = 37001,
1507
- /**
1508
- * 获得指定人员再黑名单中的状态异常
1509
- */
1510
- BLACK_GETSTATUS_ERROR = 37002,
1511
- /**
1512
- * 移除黑名单异常
1513
- */
1514
- BLACK_REMOVE_ERROR = 37003,
1515
- /**
1516
- * 获取草稿失败
1517
- */
1518
- DRAF_GET_ERROR = 38001,
1519
- /**
1520
- * 保存草稿失败
1521
- */
1522
- DRAF_SAVE_ERROR = 38002,
1523
- /**
1524
- * 删除草稿失败
1525
- */
1526
- DRAF_REMOVE_ERROR = 38003,
1527
- /**
1528
- * 关注公众号失败
1529
- */
1530
- SUBSCRIBE_ERROR = 39001,
1531
- /**
1532
- * 方法未支持
1533
- */
1534
- NOT_SUPPORT = 39002,
1535
- /**
1536
- * 关注公众号失败
1537
- */
1538
- QNTKN_FILETYPE_ERROR = 41001,
1539
- /**
1540
- * 获取七牛token失败
1541
- */
1542
- QNTKN_GET_ERROR = 41002,
1543
- /**
1544
- * cookie被禁用
1545
- */
1546
- COOKIE_ENABLE = 51001,
1547
- GET_MESSAGE_BY_ID_ERROR = 61001,
1548
- HAVNODEVICEID = 24001,
1549
- DEVICEIDISHAVE = 24002,
1550
- FEILD = 24009,
1551
- VOIPISNULL = 24013,
1552
- NOENGINETYPE = 24010,
1553
- NULLCHANNELNAME = 24011,
1554
- VOIPDYANMICERROR = 24012,
1555
- NOVOIP = 24014,
1556
- INTERNALERRROR = 24015,
1557
- VOIPCLOSE = 24016,
1558
- CLOSE_BEFORE_OPEN = 51001,
1559
- ALREADY_IN_USE = 51002,
1560
- INVALID_CHANNEL_NAME = 51003,
1561
- VIDEO_CONTAINER_IS_NULL = 51004,
1562
- /**
1563
- * 删除消息数组长度为 0 .
1564
- */
1565
- DELETE_MESSAGE_ID_IS_NULL = 61001,
1566
- /**
1567
- * 己方取消已发出的通话请求
1568
- */
1569
- CANCEL = 1,
1570
- /**
1571
- * 己方拒绝收到的通话请求
1572
- */
1573
- REJECT = 2,
1574
- /**
1575
- * 己方挂断
1576
- */
1577
- HANGUP = 3,
1578
- /**
1579
- * 己方忙碌
1580
- */
1581
- BUSYLINE = 4,
1582
- /**
1583
- * 己方未接听
1584
- */
1585
- NO_RESPONSE = 5,
1586
- /**
1587
- * 己方不支持当前引擎
1588
- */
1589
- ENGINE_UN_SUPPORTED = 6,
1590
- /**
1591
- * 己方网络出错
1592
- */
1593
- NETWORK_ERROR = 7,
1594
- /**
1595
- * 对方取消已发出的通话请求
1596
- */
1597
- REMOTE_CANCEL = 11,
1598
- /**
1599
- * 对方拒绝收到的通话请求
1600
- */
1601
- REMOTE_REJECT = 12,
1602
- /**
1603
- * 通话过程对方挂断
1604
- */
1605
- REMOTE_HANGUP = 13,
1226
+ DELIVERED_MSG = "RC:DRMsg",
1606
1227
  /**
1607
- * 对方忙碌
1228
+ * 用户加入聊天室
1608
1229
  */
1609
- REMOTE_BUSYLINE = 14,
1230
+ CHATROOM_JOIN = "RC:ChrmJoinNtf",
1610
1231
  /**
1611
- * 对方未接听
1232
+ * 用户退出聊天室
1612
1233
  */
1613
- REMOTE_NO_RESPONSE = 15,
1234
+ CHATROOM_LEFT = "RC:ChrmQuitNtf",
1614
1235
  /**
1615
- * 对方网络错误
1236
+ * 用户加入退出聊天室的集合
1616
1237
  */
1617
- REMOTE_ENGINE_UN_SUPPORTED = 16,
1238
+ CHATROOM_MERGE_CHANGE = "RC:ChrmMemChange",
1618
1239
  /**
1619
- * 对方网络错误
1240
+ * 输入状态消息
1620
1241
  */
1621
- REMOTE_NETWORK_ERROR = 17,
1242
+ TYPING_STATUS = "RC:TypSts",
1622
1243
  /**
1623
- * VoIP 不可用
1244
+ * 拦截消息,(当发送的消息的敏感词时,服务会下发一个拦截消息,内容包含被拦截消息信息)
1624
1245
  */
1625
- VOIP_NOT_AVALIABLE = 18,
1246
+ INTERCEPT = "RC:InterceptMsg"
1247
+ }
1248
+
1249
+ /**
1250
+ * @deprecated 已废弃,请使用 NotificationLevel
1251
+ */
1252
+ declare enum NotificationStatus {
1626
1253
  /**
1627
- * 聊天室批量设置kv部分不成功
1628
- */
1629
- CHATROOM_KV_STORE_NOT_ALL_SUCCESS = 23428,
1254
+ * 免打扰已开启
1255
+ */
1256
+ OPEN = 1,
1630
1257
  /**
1631
- * 聊天室设置批量kv,一次不能超过10个
1632
- */
1633
- CHATROOM_KV_STORE_OUT_LIMIT = 23429
1258
+ * 免打扰已关闭
1259
+ */
1260
+ CLOSE = 2
1634
1261
  }
1635
1262
 
1636
1263
  /**
@@ -1667,1360 +1294,1819 @@ declare enum NotificationLevel {
1667
1294
  }
1668
1295
 
1669
1296
  /**
1670
- * 音视频模式
1671
- */
1672
- declare enum RTCMode {
1297
+ * 群组 @ 类型
1298
+ */
1299
+ declare enum MentionedType {
1673
1300
  /**
1674
- * 普通音视频模式
1675
- */
1676
- RTC = 0,
1301
+ * 所有人
1302
+ */
1303
+ ALL = 1,
1677
1304
  /**
1678
- * 直播模式
1679
- */
1680
- LIVE = 2
1305
+ * 部分人
1306
+ */
1307
+ SINGAL = 2
1681
1308
  }
1682
- /**
1683
- * 直播类型
1684
- */
1685
- declare enum LiveType {
1686
- /**
1687
- * 音视频直播
1688
- */
1689
- AUDIO_AND_VIDEO = 0,
1690
- /**
1691
- * 音频直播
1692
- */
1693
- AUDIO = 1
1309
+
1310
+ interface IMetionedData {
1311
+ type?: MentionedType;
1312
+ userIdList?: string[];
1313
+ mentionedContent?: string;
1694
1314
  }
1695
- declare enum LiveRole {
1696
- /**
1697
- * 主播身份
1698
- */
1699
- ANCHOR = 1,
1315
+
1316
+ declare enum UploadMethod {
1700
1317
  /**
1701
- * 观众身份
1318
+ * 七牛上传
1702
1319
  */
1703
- AUDIENCE = 2
1704
- }
1705
- /**
1706
- * CallLib 流程消息
1707
- */
1708
- declare const CallLibMsgType: {
1709
- 'RC:VCAccept': string;
1710
- 'RC:VCRinging': string;
1711
- 'RC:VCSummary': string;
1712
- 'RC:VCHangup': string;
1713
- 'RC:VCInvite': string;
1714
- 'RC:VCModifyMedia': string;
1715
- 'RC:VCModifyMem': string;
1716
- };
1717
- declare enum RTCApiType {
1718
- ROOM = 1,
1719
- PERSON = 2
1720
- }
1721
- declare enum RTCIdentityChangeType {
1722
- AnchorToViewer = 1,
1723
- ViewerToAnchor = 2
1724
- }
1725
- /**
1726
- * RTC 房间加入类型
1727
- */
1728
- declare enum RTCJoinType {
1320
+ QINIU = 1,
1729
1321
  /**
1730
- * 踢前一个设备
1322
+ * 阿里云上传
1731
1323
  */
1732
- KICK = 0,
1324
+ ALI = 2,
1733
1325
  /**
1734
- * 当前加入拒绝
1326
+ * 亚马逊上传
1735
1327
  */
1736
- REFUSE = 1,
1328
+ AWS = 3,
1737
1329
  /**
1738
- * 两个设备共存
1330
+ * stc上传
1739
1331
  */
1740
- COEXIST = 2
1332
+ STC = 4
1741
1333
  }
1742
1334
 
1743
1335
  /**
1744
- * @deprecated 已废弃,请使用 NotificationLevel
1745
- */
1746
- declare enum NotificationStatus {
1747
- /**
1748
- * 免打扰已开启
1749
- */
1750
- OPEN = 1,
1751
- /**
1752
- * 免打扰已关闭
1753
- */
1754
- CLOSE = 2
1336
+ * 聊天室 kv 存储操作类型. 对方操作, 己方收到消息(RC:chrmKVNotiMsg)中会带入此值. 根据此值判断是删除还是更新
1337
+ */
1338
+ declare enum ChatroomEntryType {
1339
+ UPDATE = 1,
1340
+ DELETE = 2
1755
1341
  }
1756
1342
 
1343
+ declare enum LogLevel {
1344
+ LOG = 0,
1345
+ DEBUG = 0,
1346
+ INFO = 1,
1347
+ WARN = 2,
1348
+ ERROR = 3,
1349
+ FATAL = 4,
1350
+ STATISTICS = 6,
1351
+ NONE = 1000
1352
+ }
1353
+ declare enum LogSource {
1354
+ IM = "IM",
1355
+ RTC = "RTC"
1356
+ }
1757
1357
  /**
1758
- * 从服务器拉取到的会话数据结构
1358
+ * IMLib 埋点日志 Id 枚举
1359
+ * @desc 参考文档-https://rongcloud.yuque.com/tbvylv/znhprz/dpt9wf#fE9u
1759
1360
  */
1760
- interface IReceivedConversation {
1361
+ declare enum LogTagId {
1362
+ L_IMSDK_VER_O = "L-imsdk_ver-O",
1363
+ A_INIT_O = "A-init-O",
1364
+ L_INIT_O = "L-init-O",
1365
+ P_INIT_O = "P-init-O",
1366
+ A_CONNECT_T = "A-connect-T",
1367
+ A_CONNECT_R = "A-connect-R",
1368
+ A_CONNECT_S = "A-connect-S",
1369
+ A_DISCONNECT_O = "A-disconnect-O",
1370
+ A_RECONNECT_T = "A-reconnect-T",
1371
+ A_RECONNECT_R = "A_RECONNECT_R",
1372
+ L_CONNECT_T = "L-connect-T",
1373
+ L_CONNECT_R = "L-connect-R",
1374
+ L_CONNECT_S = "L-connect-S",
1375
+ P_CONNECT_O = "P-connect-O",
1376
+ P_CONNECT_S = "P-connect-S",
1377
+ A_SEND_MSG_T = "A-send_msg-T",
1378
+ A_SEND_MSG_R = "A-send_msg-R",
1379
+ P_SEND_MSG_T = "P-send_msg-T",
1380
+ P_SEND_MSG_R = "P-send_msg-R",
1381
+ L_SEND_MSG_T = "L-send_msg-T",
1382
+ L_SEND_MSG_R = "L-send_msg-R",
1383
+ L_PULL_MSG_T = "L-pull_msg-T",
1384
+ L_PULL_MSG_R = "L-pull_msg-R",
1385
+ L_PULL_ULTRA_MSG_T = "L-pull_ultra_msg-T",
1386
+ L_PULL_ULTRA_MSG_R = "L-pull_ultra_msg-R",
1387
+ L_PULL_CHATROOM_KV_T = "L-pull_chatroom_kv-T",
1388
+ L_PULL_CHATROOM_KV_R = "L-pull_chatroom_kv-R",
1389
+ L_PULL_CHATROOM_MSG_T = "L-pull_chatroom_msg-T",
1390
+ L_PULL_CHATROOM_MSG_R = "L-pull_chatroom_msg-R",
1391
+ A_DELETE_MESSAGES_S = "A-delete_messages-S",
1392
+ P_DELETE_MSG_S = "P-delete_msg-S",
1393
+ L_PULL_CONVERSATION_S = "L-pull_conversation-S",
1394
+ L_RECALL_ULTRA_MSG_S = "L-recall_ultra_msg-S",
1395
+ A_REGTYP_O = "A-regtyp-O",
1396
+ P_REGTYP_O = "P-regtype-O",
1397
+ P_REGTYP_E = "P-regtype-E",
1398
+ L_GET_NAVI_T = "L-get_navi-T",
1399
+ L_GET_NAVI_R = "L-get_navi-R",
1400
+ L_ENV_S = "L-Env-S",
1401
+ L_GET_INDEX_NAVI_S = "L-get_index_navi-S",
1402
+ A_JOIN_CHATROOM_T = "A-join_chatroom-T",
1403
+ A_JOIN_CHATROOM_R = "A-join_chatroom-R",
1404
+ L_JOIN_CHATROOM_T = "L-join_chatroom-T",
1405
+ L_JOIN_CHATROOM_R = "L-join_chatroom-R",
1406
+ A_QUIT_CHATROOM_T = "A-quit_chatroom-T",
1407
+ A_QUIT_CHATROOM_R = "A-quit_chatroom-R",
1408
+ L_REJOIN_CHATROOM_T = "L-rejoin_chatroom-T",
1409
+ L_REJOIN_CHATROOM_R = "L-rejoin_chatroom-R",
1410
+ L_MEDIA_S = "L-media-S",
1411
+ L_MEDIA_UPLOAD_T = "L-media_upload-T",
1412
+ L_MEDIA_UPLOAD_R = "L-media_upload-R",
1413
+ G_UPLOAD_LOG_S = "G-upload_log-S",
1414
+ G_UPLOAD_LOG_E = "G-upload_log-E",
1415
+ G_GET_REAL_TIMELOG_COMMAND_S = "G-get_real_timelog_command-S",
1416
+ L_CHECK_ALIVE_IM_T = "L-check_alive_im-T",
1417
+ L_CHECK_ALIVE_IM_R = "L-check_alive_im-R",
1418
+ A_GET_HISTORY_MSG_T = "A-get_history_msg-T",
1419
+ A_GET_HISTORY_MSG_R = "A-get_history_msg-R",
1420
+ L_GET_HISTORY_MSG_T = "L-get_history_msg-T",
1421
+ L_GET_HISTORY_MSG_R = "L-get_history_msg-R",
1422
+ A_CALLBACK_O = "A-callback-O",
1423
+ A_CALLBACK_E = "A-callback-E"
1424
+ }
1425
+
1426
+ /**
1427
+ * 聊天室成员进入和退出状态
1428
+ */
1429
+ declare enum ChatroomUserChangeType {
1430
+ QUIT = 0,
1431
+ JOIN = 1
1432
+ }
1433
+
1434
+ /**
1435
+ * 消息被拦截类型
1436
+ */
1437
+ declare enum MessageBlockType {
1761
1438
  /**
1762
- * 会话的业务标识
1439
+ 全局敏感词:命中了融云内置的全局敏感词
1440
+ */
1441
+ GLOBAL = 1,
1442
+ /**
1443
+ 自定义敏感词拦截:命中了客户在融云自定义的敏感词
1763
1444
  */
1764
- channelId?: string;
1445
+ CUSTOM = 2,
1765
1446
  /**
1766
- * 会话类型
1447
+ 第三方审核拦截:命中了第三方(数美)或模板路由决定不下发的状态
1448
+ */
1449
+ THIRD_PARTY = 3
1450
+ }
1451
+
1452
+ declare enum UltraGroupChannelType {
1453
+ PUBLIC = 0,
1454
+ PRIVATE = 1
1455
+ }
1456
+ declare enum UltraGroupChannelChangeType {
1457
+ PUBLIC_TO_PRIVATE = 2,
1458
+ PRIVATE_TO_PUBLIC = 3,
1459
+ PUBLIC_TO_PRIVATE_USER_NOT_IN = 6
1460
+ }
1461
+ /** PB 结构 MsgChange 属性 changeType 对应枚举值 */
1462
+ declare enum UltraMsgChangeType {
1463
+ MSG_EXPANSION = 1,
1464
+ MSG_MODIFY = 2,
1465
+ MSG_RECALL = 3,
1466
+ CHANNEL_CHANGE = 4
1467
+ }
1468
+ /** PB 结构 MsgChange 属性 subChangeType 对应枚举值 */
1469
+ declare enum UltraMsgSubChangeType {
1470
+ CHANNEL_DELETE = 1,
1471
+ PUBLIC_TO_PRIVATE = 2,
1472
+ PRIVATE_TO_PUBLIC = 3,
1473
+ PRIVATE_CHANNEL_USER_JOIN_PUBLIC = 4,
1474
+ CHANNEL_USER_KICKED = 5,
1475
+ PUBLIC_TO_PRIVATE_USER_NOT_IN = 6
1476
+ }
1477
+
1478
+ /**
1479
+ * 音视频模式
1480
+ */
1481
+ declare enum RTCMode {
1482
+ /**
1483
+ * 普通音视频模式
1767
1484
  */
1768
- conversationType: ConversationType;
1485
+ RTC = 0,
1769
1486
  /**
1770
- * 会话 Id
1771
- * @description
1772
- * 1. 当 `conversationType` 为 `ConversationType.GROUP` 时,该值为群组 Id
1773
- * 1. 当 `conversationType` 为 `ConversationType.PRIVATE` 时,该值为对方用户 Id
1487
+ * 直播模式
1774
1488
  */
1775
- targetId: string;
1489
+ LIVE = 2,
1776
1490
  /**
1777
- * 当前会话的未读消息数
1491
+ *sip呼叫
1778
1492
  */
1779
- unreadMessageCount: number;
1493
+ SIP = 4,
1780
1494
  /**
1781
- * 会话中的最后一条消息
1495
+ * 呼叫模式.包括单呼和群呼
1782
1496
  */
1783
- latestMessage: IReceivedMessage | null;
1497
+ CALL = 5,
1784
1498
  /**
1785
- * 是否包含 @ 自己的消息,此数据仅在 `conversationType` 为 `ConversationType.GROUP` 时有效
1499
+ * 会议
1786
1500
  */
1787
- hasMentioned?: boolean;
1501
+ MEETING = 6
1502
+ }
1503
+ /**
1504
+ * 直播类型
1505
+ */
1506
+ declare enum LiveType {
1788
1507
  /**
1789
- * 消息中的 @ 数据,仅在 `conversationType` 为 `ConversationType.GROUP` 时有效
1508
+ * 音视频直播
1790
1509
  */
1791
- mentionedInfo?: {
1792
- /**
1793
- * `@ 类型,其中 1 为 @ 所有人,2 为 @ 部分人`
1794
- */
1795
- type: 1 | 2;
1796
- /**
1797
- * 被 @ 的用户 Id 列表,仅在 `type` 为 `2` 时有效
1798
- */
1799
- userIdList: string[];
1800
- } | null;
1510
+ AUDIO_AND_VIDEO = 0,
1801
1511
  /**
1802
- * 会话免打扰状态
1803
- * @description
1804
- * 1. 已开启免打扰
1805
- * 2. 未开启免打扰
1512
+ * 音频直播
1806
1513
  */
1807
- notificationStatus: NotificationStatus;
1808
- notificationLevel?: NotificationLevel;
1514
+ AUDIO = 1
1515
+ }
1516
+ declare enum LiveRole {
1809
1517
  /**
1810
- * 会话是否已置顶
1518
+ * 主播身份
1811
1519
  */
1812
- isTop: boolean;
1520
+ ANCHOR = 1,
1813
1521
  /**
1814
- * 会话中消息的最后未读时间
1522
+ * 观众身份
1815
1523
  */
1816
- lastUnreadTime: number;
1524
+ AUDIENCE = 2
1525
+ }
1526
+ /**
1527
+ * CallLib 流程消息
1528
+ */
1529
+ declare const CallLibMsgType: {
1530
+ 'RC:VCAccept': string;
1531
+ 'RC:VCRinging': string;
1532
+ 'RC:VCSummary': string;
1533
+ 'RC:VCHangup': string;
1534
+ 'RC:VCInvite': string;
1535
+ 'RC:VCModifyMedia': string;
1536
+ 'RC:VCModifyMem': string;
1537
+ };
1538
+ declare enum RTCApiType {
1539
+ ROOM = 1,
1540
+ PERSON = 2
1541
+ }
1542
+ declare enum RTCIdentityChangeType {
1543
+ AnchorToViewer = 1,
1544
+ ViewerToAnchor = 2
1545
+ }
1546
+ /**
1547
+ * RTC 房间加入类型
1548
+ */
1549
+ declare enum RTCJoinType {
1817
1550
  /**
1818
- * 搜索到的会话数量
1551
+ * 踢前一个设备
1819
1552
  */
1820
- matchCount?: number;
1553
+ KICK = 0,
1821
1554
  /**
1822
- * 会话项变更时间戳
1555
+ * 当前加入拒绝
1823
1556
  */
1824
- versionTime?: number;
1825
- unreadMentionedCount?: number;
1826
- }
1827
- interface IReceivedConversationByTag extends IReceivedConversation {
1828
- isTopInTag: boolean;
1557
+ REFUSE = 1,
1558
+ /**
1559
+ * 两个设备共存
1560
+ */
1561
+ COEXIST = 2
1829
1562
  }
1830
- /**
1831
- * 设置会话状态 参数 信息
1832
- */
1833
- interface ISetConversationStatusOptions {
1563
+
1564
+ interface IConversationOption {
1834
1565
  conversationType: ConversationType;
1835
1566
  targetId: string;
1836
- isTop?: boolean;
1837
- notificationStatus?: number;
1838
- notificationLevel?: number;
1839
1567
  channelId?: string;
1840
1568
  }
1841
- interface IUpdatedConversation {
1842
- updatedItems: {
1843
- [key: string]: {
1844
- time: number;
1845
- val: any;
1846
- };
1847
- };
1569
+ interface IServerRTCRoomEntry {
1570
+ key: string;
1571
+ value: string;
1572
+ status: number;
1573
+ timestamp: number;
1574
+ uid: string;
1575
+ }
1576
+ interface IChrmKVEntry {
1577
+ key: string;
1578
+ value?: string;
1579
+ isSendNotification?: boolean;
1580
+ notificationExtra?: string;
1581
+ isOverwrite?: boolean;
1582
+ isAutoDelete?: boolean;
1583
+ timestamp?: number;
1584
+ userId?: string;
1585
+ type?: number;
1586
+ isDeleted?: boolean;
1587
+ version?: number;
1588
+ }
1589
+ interface IChrmKVEntries {
1590
+ entries: {
1591
+ key: string;
1592
+ value?: string;
1593
+ timestamp?: number;
1594
+ version?: number;
1595
+ }[];
1596
+ notificationExtra?: string;
1597
+ isOverwrite?: boolean;
1598
+ isAutoDelete?: boolean;
1599
+ timestamp?: number;
1600
+ userId?: string;
1601
+ type?: number;
1602
+ isDeleted?: boolean;
1603
+ }
1604
+ interface IServerConversationStatus {
1848
1605
  conversationType: number;
1849
1606
  targetId: string;
1850
- latestMessage?: IReceivedMessage;
1851
- unreadMessageCount?: number;
1852
- hasMentioned?: boolean;
1853
- mentionedInfo?: {
1854
- /**
1855
- * `@ 类型,其中 1 为 @ 所有人,2 为 @ 部分人`
1856
- */
1857
- type: 1 | 2;
1858
- /**
1859
- * 被 @ 的用户 Id 列表,仅在 `type` 为 `2` 时有效
1860
- */
1861
- userIdList: string[];
1862
- };
1863
- lastUnreadTime?: number;
1607
+ updatedTime?: number;
1864
1608
  notificationStatus?: number;
1865
1609
  notificationLevel?: number;
1866
1610
  isTop?: boolean;
1867
- /**
1868
- * 会话标识
1869
- */
1611
+ type?: number;
1612
+ tags?: IConversationTag[];
1870
1613
  channelId?: string;
1871
- tags?: IUpdatedConversation[];
1872
- versionTime?: number;
1614
+ }
1615
+ interface IUserSettingItem {
1616
+ targetId: number;
1617
+ type: number;
1618
+ key: string;
1619
+ value: any;
1620
+ version: number;
1621
+ status: number;
1622
+ tags: IConversationTag[];
1623
+ }
1624
+ interface IServerUserSetting {
1625
+ settings: {
1626
+ [key: string]: IUserSettingItem;
1627
+ };
1628
+ version: number;
1629
+ }
1630
+ interface ISyncMsgArgs {
1631
+ inboxTime: number;
1632
+ sendboxTime: number;
1633
+ broadcastSyncTime?: number;
1634
+ }
1635
+ interface IGetMsgOption {
1636
+ timestamp?: number;
1637
+ count?: number;
1638
+ order?: number;
1639
+ channelId?: string;
1640
+ }
1641
+ interface IGetConversationListOption {
1642
+ type?: number;
1643
+ count?: number;
1644
+ startTime?: number;
1645
+ order?: 0 | 1;
1646
+ }
1647
+ interface IClearMsgOption {
1648
+ timestamp?: number;
1649
+ }
1650
+
1651
+ interface IGooglePushConfig {
1873
1652
  /**
1874
- * @ 消息未读数
1653
+ * 分组ID
1875
1654
  */
1876
- unreadMentionedCount?: number;
1655
+ collapseKey?: string;
1656
+ /**
1657
+ *
1658
+ */
1659
+ imageUrl?: string;
1660
+ /**
1661
+ *优先级
1662
+ */
1663
+ priority?: 'high' | 'normal';
1877
1664
  }
1878
- interface IBaseConversationInfo {
1879
- conversationType: ConversationType;
1880
- targetId: string;
1881
- channelId: string;
1665
+ interface IiOSPushConfig {
1666
+ /**
1667
+ * iOS 用于通知分组的 id
1668
+ */
1669
+ threadId?: string;
1670
+ /**
1671
+ * iOS 用于通知覆盖的 id
1672
+ */
1673
+ apnsCollapseId?: string;
1674
+ /**
1675
+ * iOS 分类,如果不设置后台默认取消息类型字符串,如RC:TxtMsg
1676
+ */
1677
+ category?: string;
1678
+ /**
1679
+ * 和 category 对应
1680
+ */
1681
+ richMediaUri?: string;
1882
1682
  }
1883
- interface IConversationState extends IBaseConversationInfo {
1884
- unreadCount: number;
1885
- unreadMentionedCount: number;
1683
+ interface IAndroidPushConfig {
1684
+ /**
1685
+ * Android 的通知 id
1686
+ */
1687
+ notificationId?: string;
1688
+ /**
1689
+ * 小米的 channelId
1690
+ */
1691
+ channelIdMi?: string;
1692
+ /**
1693
+ * 华为的 channelId
1694
+ */
1695
+ channelIdHW?: string;
1696
+ /**
1697
+ * OPPO 的 channelId
1698
+ */
1699
+ channelIdOPPO?: string;
1700
+ /**
1701
+ * vivo 的类型
1702
+ */
1703
+ typeVivo?: string;
1704
+ /**
1705
+ * google FCM 的推送配置
1706
+ */
1707
+ googleConfig?: IGooglePushConfig;
1886
1708
  }
1887
- /** 指定超级群会话传参 */
1888
- interface IUltraGroupOption {
1889
- targetId: string;
1890
- channelId?: string;
1709
+ interface IPushConfig {
1710
+ /**
1711
+ * 推送标题
1712
+ * 如果没有设置,会使用下面的默认标题显示规则
1713
+ * 默认标题显示规则:
1714
+ * 内置消息:单聊通知标题显示为发送者名称,群聊通知标题显示为群名称。
1715
+ * 自定义消息:默认不显示标题。
1716
+ */
1717
+ pushTitle: string;
1718
+ /**
1719
+ * 推送内容
1720
+ * 优先使用 IPushConfig.pushContent, 如果没有,则使用发送消息的 pushContent 参数
1721
+ */
1722
+ pushContent: string;
1723
+ /**
1724
+ * 远程推送附加信息
1725
+ * 优先使用 IPushConfig.pushData, 如果没有,则使用发送消息的 pushContent 参数
1726
+ */
1727
+ pushData: string;
1728
+ /**
1729
+ * iOSConfig
1730
+ */
1731
+ iOSConfig?: IiOSPushConfig;
1732
+ /**
1733
+ * androidConfig
1734
+ */
1735
+ androidConfig?: IAndroidPushConfig;
1736
+ /**
1737
+ * 是否显示推送标题. 仅针对 iOS 平台有效
1738
+ */
1739
+ disablePushTitle: boolean;
1740
+ /**
1741
+ * 是否强制推送
1742
+ */
1743
+ forceShowDetailContent: boolean;
1744
+ /**
1745
+ * 推送模板id
1746
+ */
1747
+ templateId: string;
1891
1748
  }
1892
1749
 
1893
1750
  /**
1894
- * 导航信息数据就结构
1751
+ * 已读回执数据结构
1895
1752
  */
1896
- interface INaviInfo {
1753
+ interface IMessageReader {
1754
+ readTime: number;
1755
+ userId: string;
1756
+ }
1757
+ interface IMessageReaderResponse {
1758
+ totalMemberCount: number;
1759
+ list: IMessageReader[];
1760
+ }
1761
+ interface ILocalReadReceiptInfo {
1762
+ hasRespond?: boolean;
1763
+ readerInfo?: {
1764
+ [userId: string]: number;
1765
+ };
1766
+ readCount?: number;
1767
+ totalCount?: number;
1768
+ }
1769
+ interface IReadReceiptInfo {
1770
+ /**
1771
+ * 是否已经发送已读回执
1772
+ */
1773
+ hasRespond?: boolean;
1774
+ /**
1775
+ * 已阅读用户列表(不准确)
1776
+ */
1777
+ readerList?: IMessageReader[];
1778
+ /**
1779
+ * 阅读人数(不准确)
1780
+ */
1781
+ readCount?: number;
1782
+ /**
1783
+ * 群组总人数(不准确)
1784
+ */
1785
+ totalCount?: number;
1786
+ }
1787
+ /**
1788
+ * 从服务端接收到的消息数据
1789
+ */
1790
+ interface IReceivedMessage {
1791
+ /**
1792
+ * 会话的业务标识
1793
+ */
1794
+ channelId?: string;
1795
+ /**
1796
+ * 会话类型
1797
+ * * 1: 单聊
1798
+ * * 3: 群聊
1799
+ * * 4: 聊天室
1800
+ * * 5: 客服会话
1801
+ * * 6: 系统消息
1802
+ * * 7: 默认关注的公众号
1803
+ * * 8: 手动关注的公众号
1804
+ * * 9: RTCLib 房间
1805
+ */
1806
+ conversationType: ConversationType;
1807
+ /**
1808
+ * 会话 targetId
1809
+ */
1810
+ targetId: string;
1897
1811
  /**
1898
- * Navi 数据请求响应码,200 为成功请求
1812
+ * 消息发送者的用户 Id
1899
1813
  */
1900
- code: number;
1814
+ senderUserId: string;
1901
1815
  /**
1902
- * 获取 Navi 数据失败时的提示信息
1816
+ * 消息内容
1903
1817
  */
1904
- errorMessage?: string;
1818
+ content: any;
1905
1819
  /**
1906
- * 获取 Navi 数据失败时的请求 url 信息
1820
+ * 消息结构名称,即消息类型
1821
+ * @example RC:TxtMsg
1907
1822
  */
1908
- url?: string;
1823
+ messageType: string;
1909
1824
  /**
1910
- * 请求导航数据时使用的协议:http / https
1911
- * @description 该字段为 SDK 内增加的字段,导航接口数据中不存在
1825
+ * 服务端存储的消息 Id
1912
1826
  */
1913
- protocol: 'http' | 'https';
1827
+ messageUId: string;
1914
1828
  /**
1915
- * 获取导航时使用的 userId,小程序不走导航,故拿不到 userId
1829
+ * 消息方向是发出 or 收取
1916
1830
  */
1917
- userId?: string;
1831
+ messageDirection: MessageDirection;
1918
1832
  /**
1919
- * CMP 服务 Websocket 连接地址,包含域名与端口,不含 ws 或 wss 协议头
1920
- * @example a.domain.com:443
1833
+ * 是否为离线消息
1921
1834
  */
1922
- server: string;
1835
+ isOffLineMessage: boolean;
1923
1836
  /**
1924
- * 备用 CMP 服务地址,包含域名与端口,不含 ws 或 wss 协议头,多个备用地址以 ',' 分割
1925
- * @example a.domain.com:443,b.domain.com:443
1837
+ * 消息在服务器端的发送时间
1926
1838
  */
1927
- backupServer?: string;
1839
+ sentTime: number;
1928
1840
  /**
1929
- * 备用 CMP 服务地址,POST 请求 TCP 连接返回的是 bs 字段,非 backupServer 字段
1841
+ * 消息接收时间,该时间通过消息的 `sentTime` 值在本地进行计算得出,不推荐使用
1842
+ * @description 当 isOffLineMessage 为 true 时,该值无效
1930
1843
  */
1931
- bs?: string;
1844
+ receivedTime: number;
1932
1845
  /**
1933
- * RTC 服务配置,其值可能为 null、无效字符串、有效 JSON 字符串
1934
- * 1. 公有云未开通音视频时,值为 null
1935
- * 2. 私有云无配置时为 `{ "strategy": 0 }`
1846
+ * 是否存储
1847
+ * @default true
1936
1848
  */
1937
- voipCallInfo: string | null;
1849
+ isPersited: boolean;
1938
1850
  /**
1939
- * 聊天室 kv 存储开关
1940
- * @todo 需确认详细有效值
1941
- * @description 公有云独有配置
1851
+ * 是否计数
1852
+ * @default true
1942
1853
  */
1943
- kvStorage: number;
1854
+ isCounted: boolean;
1944
1855
  /**
1945
- * HttpDNS 功能开关,在 web 端无效
1946
- * @description 公有云独有配置
1856
+ * 是否为 @ 消息
1947
1857
  */
1948
- openHttpDNS: boolean;
1858
+ isMentioned: boolean;
1949
1859
  /**
1950
- * 历史消息云存储功能开关
1951
- * @description
1952
- * 1. 公有云通过 `developer.rongcloud.cn` 管理后台 `单群聊消息云端存储` 功能开关进行配置
1953
- * 2. 私有云默认为 `true`
1860
+ * 消息是否静默
1861
+ * @description 静默消息不会发送 Push 信息和本地通知提醒
1954
1862
  */
1955
- historyMsg: boolean;
1863
+ disableNotification: boolean;
1956
1864
  /**
1957
- * 聊天室历史消息开关
1958
- * @description
1959
- * 1. 私有云对聊天室功能支持有限,默认为 `false`
1960
- * 2. TODO: 公有云配置待确认
1865
+ * 是否是状态消息
1961
1866
  */
1962
- chatroomMsg: boolean;
1867
+ isStatusMessage: boolean;
1963
1868
  /**
1964
- * 文件服务器地址
1965
- * @description
1966
- * 1. 公有云下,该地址为七牛云服务器地址
1967
- * 2. 私有云下,该地址为私有云自研文件服务器地址
1869
+ * 是否支持消息扩展存储
1870
+ */
1871
+ canIncludeExpansion: boolean;
1872
+ /**
1873
+ * 消息携带的扩展存储
1874
+ */
1875
+ expansion: {
1876
+ [key: string]: any;
1877
+ } | null;
1878
+ /**
1879
+ * 消息接收状态
1880
+ */
1881
+ receivedStatus: number;
1882
+ /**
1883
+ * CPP 独有字段 消息本地 ID
1884
+ */
1885
+ messageId?: number;
1886
+ /**
1887
+ * CPP 独有字段 消息发送状态
1888
+ */
1889
+ sentStatus?: number;
1890
+ /**
1891
+ * 已读回执信息(导航配置grpRRVer=1时群组类型消息内存在, 其他情况为undefined)
1968
1892
  */
1969
- uploadServer: string;
1893
+ readReceiptInfo?: IReadReceiptInfo;
1970
1894
  /**
1971
- * 实时位置共享配置,web 端无需处理
1895
+ * 推送扩展
1972
1896
  */
1973
- location: null | string;
1897
+ pushConfig?: IPushConfig;
1974
1898
  /**
1975
- * 实时日志上传开关
1976
- * @todo 需确认有效值及作用
1899
+ * 超级群专有字段,是否断档,服务端收到大量消息可能会断档,所以消息存在此标志位,断档需要客户手动拉取历史消息
1977
1900
  */
1978
- monitor: number;
1901
+ isInterrupt?: boolean;
1979
1902
  /**
1980
- * 是否允许加入多聊天室开关
1903
+ * 拉取历史消息时表示该消息是否修改过(仅超级群有效)
1981
1904
  */
1982
- joinMChrm: boolean;
1905
+ isModifyMessage?: boolean;
1983
1906
  /**
1984
- * 是否开启公众号功能:`0` 为未开启,`1` 为已开启
1907
+ * 拉取历史消息时表示该消息是否为超级群频道类型(仅超级群有效)
1985
1908
  */
1986
- openMp: 0 | 1;
1909
+ channelType?: UltraGroupChannelType;
1910
+ }
1911
+ interface IUserProfile {
1987
1912
  /**
1988
- * 是否开启用户级配置,若开启,需连接成功后立即拉取实时配置,0 | 1
1989
- * @description
1990
- * 配置来源:
1991
- * 1. 导航
1992
- * 2. 服务端实时下发
1993
- * 已有配置字段:
1994
- * 1. Lan. 推送使用的语言设置,用户端可自定义修改. Web 端未做设置, 只做接收
1995
- * 2. ShPushSwit. 推送是否显示详情设置,用户端可自定义修改. Web 端未做设置, 只做接收
1996
- * 3. MobPushSwit: Web/PC 在线,移动端不在线是否发送推送开关,用户端可自定义修改. Web 端未做设置, 只做接收
1997
- * 4. OffMsgDur: 离线消息保存天数,设置天数不可大于App级对应配置,用户端可自定义修改. Web 端未做设置, 只做接收
1998
- * 5. VoipInfo: 音视频相关配置,用户端不可自定义修改. 由服务端决定,与导航下发格式一致
1999
- * @todo 需确认公有云与私有云区别
1913
+ * 用户 ID
1914
+ */
1915
+ id?: string;
1916
+ /**
1917
+ * 用户名
2000
1918
  */
2001
- openUS: 0 | 1;
1919
+ name?: string;
2002
1920
  /**
2003
- * 超级群功能开关,1表示开
1921
+ * 用户头像地址
1922
+ * @deprecated
2004
1923
  */
2005
- ugMsg?: 0 | 1;
1924
+ portraitUri?: string;
2006
1925
  /**
2007
- * 群离线消息最大下发条数,`0` 为关闭
2008
- * @description 公有云独有配合
1926
+ * user info 中附加信息
2009
1927
  */
2010
- grpMsgLimit: number;
1928
+ extra?: string;
2011
1929
  /**
2012
- * 消息加密开关,0 为关闭
2013
- * @todo
2014
- * 1. 确定其控制的功能
2015
- * 2. 确定 web 相关性
1930
+ * 用户头像地址(向移动端兼容)
2016
1931
  */
2017
- isFormatted: number;
1932
+ portrait?: string;
1933
+ }
1934
+ interface IOperateInfo {
1935
+ targetId: string;
1936
+ channelId?: string;
1937
+ userId: string;
1938
+ operationType: OperateStatus;
1939
+ operationTime?: number;
1940
+ }
1941
+ interface IOperateSummary {
1942
+ targetId: string;
1943
+ channelId?: string;
1944
+ count: number;
1945
+ operationType: OperateStatus;
1946
+ }
1947
+ interface IOperateStatusNotify {
1948
+ conversationType: ConversationType;
1949
+ hasInfo: boolean;
1950
+ hasSummary: boolean;
1951
+ info: IOperateInfo[];
1952
+ summary: IOperateSummary[];
1953
+ }
1954
+ interface IRecallMsgOptions {
2018
1955
  /**
2019
- * GIF 动图大小限制,默认 2048 KB
1956
+ * 会话组织机构标识
1957
+ * 默认值未 空字符串
1958
+ */
1959
+ channelId: string;
1960
+ /**
1961
+ * 发送消息携带的用户信息
1962
+ */
1963
+ user?: IUserProfile;
1964
+ /**
1965
+ * Push 信息
1966
+ */
1967
+ pushContent?: string;
1968
+ /**
1969
+ * 原消息体
1970
+ */
1971
+ oriContent?: any;
1972
+ /**
1973
+ * 是否发送静默消息
1974
+ * @description
1975
+ * 当值为 `true` 时,服务器将不会发送 Push 信息,移动端也不会弹出本地通知提醒
1976
+ */
1977
+ disableNotification?: boolean;
1978
+ /**
1979
+ * 移动端推送配置
1980
+ */
1981
+ pushConfig?: IPushConfig;
1982
+ /**
1983
+ * 其他拓展信息
1984
+ */
1985
+ extra?: string;
1986
+ /**
1987
+ * 是否删除原始消息(在移动端会使用到),为 true 时移动端会不显示小灰条提示
2020
1988
  */
2021
- gifSize: number;
1989
+ isDelete?: boolean;
1990
+ }
1991
+ interface IRecallMsgContent {
1992
+ conversationType: number;
1993
+ targetId: string;
1994
+ sentTime: number;
1995
+ messageUId: string;
2022
1996
  /**
2023
- * 上传小视频时长限制,单位:秒
2024
- * @description 公有云字段,即私有云配置中的 `uploadVideoTimeLimit`
1997
+ * 会话组织机构标识
1998
+ * 默认值未 空字符串
1999
+ */
2000
+ channelId: string;
2001
+ /**
2002
+ * 其他拓展信息
2003
+ */
2004
+ extra?: string;
2005
+ /**
2006
+ * 发送消息携带的用户信息
2007
+ */
2008
+ user?: IUserProfile;
2009
+ /**
2010
+ * 是否删除原始消息(在移动端会使用到),为 true 时移动端会不显示小灰条提示
2025
2011
  */
2026
- videoTimes?: number;
2012
+ isDelete?: boolean;
2013
+ }
2014
+ /**
2015
+ * 发送消息时的可选项信息
2016
+ */
2017
+ interface ISendMsgOptions {
2018
+ /**
2019
+ * 消息类型,即消息结构的 ObjectName
2020
+ */
2021
+ messageType: string;
2022
+ /**
2023
+ * 消息内容
2024
+ */
2025
+ content: {
2026
+ /**
2027
+ * 消息内容 key-value,最终会进行 JSON 序列化后发送
2028
+ */
2029
+ [key: string]: any;
2030
+ /**
2031
+ * 消息可携带的用户数据
2032
+ */
2033
+ user?: IUserProfile;
2034
+ /**
2035
+ * 其他拓展信息
2036
+ */
2037
+ extra?: string;
2038
+ };
2027
2039
  /**
2028
- * 上传小视频时长限制,单位:秒
2029
- * @description 私有云字段,即公有云配置中的 `videoTimes`
2040
+ * 是否存储
2041
+ * @description 只在发送未注册过的自定义消息时有效,否则使用注册时的配置
2030
2042
  */
2031
- uploadVideoTimeLimit?: number;
2043
+ isPersited?: boolean;
2032
2044
  /**
2033
- * 实时日志上传开关:`0` 为关闭,`1` 为开启
2045
+ * 是否计数
2046
+ * @description 只在发送未注册过的自定义消息时有效,否则使用注册时的配置
2034
2047
  */
2035
- logSwitch: number;
2048
+ isCounted?: boolean;
2036
2049
  /**
2037
- * 实时日志上传策略
2038
- * @example `'{ "url": "logcollection.ronghub.com", "level": 1,"itv": 6, "times": 5 }'`
2050
+ * 是否是状态消息,一般为无需注册的自定义消息
2051
+ * @description
2052
+ * 1. 状态消息只有 pub,没有 ack 应答
2053
+ * 2. 状态消息默认不存储,不计数,`isPersited` 与 `isCounted` 配置将失效
2039
2054
  */
2040
- logPolicy: string;
2055
+ isStatusMessage?: boolean;
2041
2056
  /**
2042
- * 百度 BOS 存储服务地址
2043
- * @description 公有云独有配置
2044
- * @example `gz.bcebos.com`
2057
+ * 是否发送静默消息
2058
+ * @description
2059
+ * 当值为 `true` 时,服务器将不会发送 Push 信息,移动端也不会弹出本地通知提醒
2045
2060
  */
2046
- bosAddr?: string;
2061
+ disableNotification?: boolean;
2047
2062
  /**
2048
- * 阿里上传配置,字符串数组,数组顺序代表 七牛、百度、阿里云 上传权重
2049
- * @example "[{"qiniu":"upload.qiniup.com","p":"1"},{"baidu":"gz.bcebos.com","p":"2"},{"aliyun":"oss-cn-beijing.aliyuncs.com","p":"3"}]"
2063
+ * Push 信息
2050
2064
  */
2051
- ossConfig?: string;
2065
+ pushContent?: string;
2052
2066
  /**
2053
- * 私有云专有属性,可用来判断当前环境是公有云还是私有云,私有云环境下该值为 `1`
2067
+ * Push 通知携带的附加信息
2054
2068
  */
2055
- type?: number;
2069
+ pushData?: string;
2056
2070
  /**
2057
- * @deprecated 已废弃
2071
+ * 是否为 @ 消息,只当 conversationType 值为 `ConversationType.GROUP` 时有效
2058
2072
  */
2059
- compDays: number;
2073
+ isMentioned?: boolean;
2060
2074
  /**
2061
- * @deprecated 已废弃
2075
+ * `@` 消息类型
2076
+ * @description `1: @ 所有人 2: @ 指定用户`
2062
2077
  */
2063
- msgAck: unknown;
2078
+ mentionedType?: 1 | 2;
2064
2079
  /**
2065
- * @deprecated 已废弃
2080
+ * @ 的用户 Id 列表,当 `mentionedType` 值为 `1` 时,该值可为空
2066
2081
  */
2067
- activeServer: string;
2082
+ mentionedUserIdList?: string[];
2068
2083
  /**
2069
- * @deprecated 已废弃
2084
+ * 用于发送群定向消息,只当 conversationType 值为 `ConversationType.GROUP` 时有效
2070
2085
  */
2071
- qnAddr: string;
2086
+ directionalUserIdList?: string[];
2072
2087
  /**
2073
- * @deprecated 已废弃
2088
+ * 当对方为 iOS 设备且未在线时,其将收到 Voip Push. 此配置对 Android 无影响
2074
2089
  */
2075
- extkitSwitch: number;
2090
+ isVoipPush?: boolean;
2076
2091
  /**
2077
- * @deprecated 已废弃
2092
+ * 消息是否支持拓展内容
2078
2093
  */
2079
- alone: boolean;
2094
+ canIncludeExpansion?: boolean;
2080
2095
  /**
2081
- * @deprecated 已废弃
2096
+ * 消息拓展内容数据
2082
2097
  */
2083
- voipServer: string;
2098
+ expansion?: {
2099
+ [key: string]: string;
2100
+ };
2084
2101
  /**
2085
- * 离线日志上报地址
2086
- * @deprecated 已废弃
2102
+ * 黑/白名单
2103
+ * @todo 功能未知,需确认
2087
2104
  */
2088
- offlinelogserver: string;
2105
+ isFilerWhiteBlacklist?: boolean;
2089
2106
  /**
2090
- * 在线日志上报地址
2091
- * @deprecated 已废弃
2092
- */
2093
- onlinelogserver?: string;
2107
+ * 移动端推送配置
2108
+ */
2109
+ pushConfig?: IPushConfig;
2094
2110
  /**
2095
- * 链路加密字段,内容为 JSON 字符串,仅限 C++ 可用
2096
- */
2097
- crypto?: string;
2111
+ * 会话业务标识
2112
+ * @description
2113
+ * 20 个字符长度限制
2114
+ */
2115
+ channelId?: string;
2098
2116
  /**
2099
- * 群组回执开关, 1: 打开,0(或者没有): 关闭
2117
+ * 客户端的消息标识
2118
+ * 重发消息时用到,重发消息的消息 ID,仅 electron 中有效
2100
2119
  */
2101
- grpRRVer?: number;
2120
+ messageId?: number;
2102
2121
  /**
2103
- * 防黑产开关, 1: 打开,0:关闭
2122
+ * 超级群专有字段,是否断档,若断档需要客户判断是否拉取
2104
2123
  */
2105
- openAnti?: number;
2124
+ isInterrupt?: boolean;
2106
2125
  }
2107
-
2108
- /**
2109
- * 聊天室成员进入和退出状态
2110
- */
2111
- declare enum ChatroomUserChangeType {
2112
- QUIT = 0,
2113
- JOIN = 1
2126
+ interface IInsertMsgOptions {
2127
+ senderUserId: string;
2128
+ messageType: string;
2129
+ content: any;
2130
+ messageDirection: number;
2131
+ readStatus?: number;
2132
+ sentStatus?: number;
2133
+ sentTime?: number;
2134
+ searchContent?: string;
2135
+ isUnread?: boolean;
2136
+ messageUId?: string;
2137
+ disableNotification?: boolean;
2138
+ canIncludeExpansion?: boolean;
2139
+ expansionMsg?: string;
2140
+ channelId: string;
2114
2141
  }
2115
-
2116
- interface IChatroomEntryListenerData {
2117
- /**
2118
- * 更新的键
2119
- */
2120
- key: string;
2142
+ interface ISendExMsgOptions {
2143
+ channelId: string;
2144
+ conversationType: ConversationType;
2145
+ targetId: string;
2121
2146
  /**
2122
- * 更新的值
2147
+ * 消息 ID
2123
2148
  */
2124
- value: string;
2149
+ messageUId: string;
2125
2150
  /**
2126
- * 更新的时间
2151
+ * 原始消息是否支持扩展的字段
2127
2152
  */
2128
- timestamp: number;
2153
+ canIncludeExpansion: boolean;
2129
2154
  /**
2130
- * 更新的聊天室 ID
2155
+ * 删除的 keys
2131
2156
  */
2132
- chatroomId: string;
2157
+ keys?: string[];
2133
2158
  /**
2134
- * 更新类型
2159
+ * 扩展对象
2135
2160
  */
2136
- type: ChatroomEntryType;
2137
- }
2138
- interface IChatroomRejoinedFailed {
2161
+ expansion?: {
2162
+ [key: string]: string;
2163
+ };
2139
2164
  /**
2140
- * 自动重新加入的聊天室 ID
2165
+ * 是否删除所有扩展
2141
2166
  */
2142
- chatroomId: string;
2167
+ removeAll?: boolean;
2143
2168
  /**
2144
- * 自动重新加入失败的 code
2169
+ * 原始消息的扩展
2145
2170
  */
2146
- errorCode: number;
2171
+ originExpansion?: {
2172
+ [key: string]: string;
2173
+ } | null;
2147
2174
  }
2148
- interface IChatroomRejoinedSuccessed {
2175
+ interface IUltraExMsgOptions {
2176
+ canIncludeExpansion: boolean;
2177
+ channelId: string;
2178
+ conversationType: ConversationType;
2179
+ targetId: string;
2180
+ messageUId: string;
2181
+ sendTime: number;
2149
2182
  /**
2150
- * 自动重新加入的聊天室 ID
2183
+ * 删除的 keys
2151
2184
  */
2152
- chatroomId: string;
2185
+ keys?: string[];
2153
2186
  /**
2154
- * 自动重新加入的聊天室拉取消息的数量
2187
+ * 扩展对象
2155
2188
  */
2156
- count: number;
2157
- }
2158
- interface IChatroomUserChangeInfo {
2159
- users: {
2160
- [userId: string]: ChatroomUserChangeType;
2189
+ expansion?: {
2190
+ [key: string]: string;
2161
2191
  };
2162
- chatroomId: string;
2163
- }
2164
- declare type IChatroomRejoinedInfo = IChatroomRejoinedFailed | IChatroomRejoinedSuccessed;
2165
- /**
2166
- * 聊天室信息
2167
- */
2168
- interface IChatroomListenerData {
2169
2192
  /**
2170
- * SDK 内部重连聊天室信息
2171
- */
2172
- rejoinedRoom?: IChatroomRejoinedInfo;
2173
- /**
2174
- * 监听到的聊天室 KV 更新
2193
+ * 是否删除所有扩展
2175
2194
  */
2176
- updatedEntries?: IChatroomEntryListenerData[];
2177
- /**
2178
- * 登录退出的用户通知
2179
- */
2180
- userChange?: IChatroomUserChangeInfo;
2181
- /**
2182
- * 聊天室销毁
2183
- */
2184
- chatroomDestroyed?: string;
2195
+ removeAll?: boolean;
2185
2196
  }
2186
- interface IChatroomEntry {
2187
- /**
2188
- * 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符
2189
- */
2190
- key: string;
2191
- /**
2192
- * 属性对应的值, 最大长度 4096 字符
2193
- */
2194
- value: string;
2195
- /**
2196
- * 设置成功后是否发送通知消息
2197
- */
2198
- isSendNotification?: boolean;
2199
- /**
2200
- * RC:chrmKVNotiMsg 消息中携带的附加信息
2201
- */
2202
- notificationExtra?: string;
2197
+ interface IUltraModifyMsgOptions {
2198
+ canIncludeExpansion?: boolean;
2199
+ channelId: string;
2200
+ conversationType: ConversationType;
2201
+ targetId: string;
2202
+ messageUId: string;
2203
+ sendTime: number;
2203
2204
  /**
2204
- * 用户退出聊天室时是否清除此属性
2205
+ * 消息内容
2205
2206
  */
2206
- isAutoDelete?: boolean;
2207
+ content: {
2208
+ /**
2209
+ * 消息内容 key-value,最终会进行 JSON 序列化后发送
2210
+ */
2211
+ [key: string]: any;
2212
+ /**
2213
+ * 消息可携带的用户数据
2214
+ */
2215
+ user?: IUserProfile;
2216
+ /**
2217
+ * 其他拓展信息
2218
+ */
2219
+ extra?: string;
2220
+ };
2221
+ }
2222
+ interface IUltraMsgQueryInfo {
2223
+ sendTime: number;
2224
+ messageUId: string;
2225
+ channelId?: string;
2226
+ }
2227
+ interface IUltraMsgQueryOptions {
2228
+ conversationType: ConversationType;
2229
+ targetId: string;
2230
+ messages: IUltraMsgQueryInfo[];
2207
2231
  }
2208
- interface IChatroomUser {
2209
- /**
2210
- * 用户 id
2211
- */
2212
- id: string;
2213
- /**
2214
- * 加入聊天室的时间
2215
- */
2216
- time: number;
2232
+ /**
2233
+ * 被拦截的消息信息
2234
+ */
2235
+ interface IBlockedMessageInfo {
2236
+ blockedMessageUId: string;
2237
+ conversationType: number;
2238
+ targetId: string;
2239
+ channelId: string;
2240
+ blockType: MessageBlockType;
2241
+ extra: any;
2217
2242
  }
2218
- interface IChatroomInfo {
2243
+
2244
+ /**
2245
+ * TODO: 确定对外暴露的必要性
2246
+ * @deprecated
2247
+ */
2248
+ declare const DelayTimer: {
2249
+ _delayTime: number;
2219
2250
  /**
2220
- * 成员列表
2221
- * @todo 需确认数组元素的数据结构
2251
+ * 方法并未引用,getTimer 实际返回值始终为 Date.now()
2252
+ * @deprecated
2222
2253
  */
2223
- userInfos: IChatroomUser[];
2254
+ setTime: (time: number) => void;
2255
+ getTime: () => number;
2256
+ };
2257
+
2258
+ /**
2259
+ * 从服务器拉取到的会话数据结构
2260
+ */
2261
+ interface IReceivedConversation {
2224
2262
  /**
2225
- * 房间内总人数
2226
- */
2227
- userCount: number;
2228
- }
2229
- interface IRemoveChatroomEntry {
2263
+ * 会话的业务标识
2264
+ */
2265
+ channelId?: string;
2230
2266
  /**
2231
- * 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符
2267
+ * 会话类型
2232
2268
  */
2233
- key: string;
2269
+ conversationType: ConversationType;
2234
2270
  /**
2235
- * 删除成功后是否发送通知消息
2271
+ * 会话 Id
2272
+ * @description
2273
+ * 1. 当 `conversationType` 为 `ConversationType.GROUP` 时,该值为群组 Id
2274
+ * 1. 当 `conversationType` 为 `ConversationType.PRIVATE` 时,该值为对方用户 Id
2236
2275
  */
2237
- isSendNotification?: boolean;
2276
+ targetId: string;
2238
2277
  /**
2239
- * RC:chrmKVNotiMsg 消息中携带的附加信息
2278
+ * 当前会话的未读消息数
2240
2279
  */
2241
- notificationExtra?: string;
2242
- }
2243
- interface IRemoveChatroomEntries {
2280
+ unreadMessageCount: number;
2244
2281
  /**
2245
- * key 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符
2282
+ * 会话中的最后一条消息
2246
2283
  */
2247
- entries: {
2248
- key: string;
2249
- }[];
2284
+ latestMessage: IReceivedMessage | null;
2250
2285
  /**
2251
- * 删除成功后是否发送通知消息
2286
+ * 是否包含 @ 自己的消息,此数据仅在 `conversationType` 为 `ConversationType.GROUP` 时有效
2252
2287
  */
2288
+ hasMentioned?: boolean;
2253
2289
  /**
2254
- * RC:chrmKVNotiMsg 消息中携带的附加信息
2290
+ * 消息中的 @ 数据,仅在 `conversationType` 为 `ConversationType.GROUP` 时有效
2255
2291
  */
2256
- notificationExtra?: string;
2257
- }
2258
- interface IChatroomEntries {
2292
+ mentionedInfo?: {
2293
+ /**
2294
+ * `@ 类型,其中 1 为 @ 所有人,2 为 @ 部分人`
2295
+ */
2296
+ type: 1 | 2;
2297
+ /**
2298
+ * 被 @ 的用户 Id 列表,仅在 `type` 为 `2` 时有效
2299
+ */
2300
+ userIdList: string[];
2301
+ } | null;
2259
2302
  /**
2260
- * entries ,要设置的属性列表
2261
- * key 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符
2262
- * value 属性对应的值, 最大长度 4096 字符
2303
+ * 会话免打扰状态
2304
+ * @description
2305
+ * 1. 已开启免打扰
2306
+ * 2. 未开启免打扰
2263
2307
  */
2264
- entries: {
2265
- key: string;
2266
- value: string;
2267
- }[];
2308
+ notificationStatus: NotificationStatus;
2309
+ notificationLevel?: NotificationLevel;
2268
2310
  /**
2269
- * 设置成功后是否发送通知消息
2311
+ * 会话是否已置顶
2270
2312
  */
2313
+ isTop: boolean;
2271
2314
  /**
2272
- * RC:chrmKVNotiMsg 消息中携带的附加信息
2315
+ * 会话中消息的最后未读时间
2273
2316
  */
2274
- notificationExtra?: string;
2317
+ lastUnreadTime: number;
2275
2318
  /**
2276
- * 用户退出聊天室时是否清除此属性
2319
+ * 搜索到的会话数量
2277
2320
  */
2278
- isAutoDelete?: boolean;
2321
+ matchCount?: number;
2279
2322
  /**
2280
- * 是否强制覆盖
2323
+ * 会话项变更时间戳
2281
2324
  */
2282
- isForce?: boolean;
2325
+ versionTime?: number;
2326
+ unreadMentionedCount?: number;
2283
2327
  }
2284
-
2285
- interface IUploadAuth {
2286
- /**
2287
- * 七牛 token 有效期
2288
- */
2289
- deadline: number;
2290
- /**
2291
- * 七牛上传 token
2292
- */
2293
- token: string;
2294
- /**
2295
- * 百度上传 token
2296
- */
2297
- bosToken: string;
2298
- /**
2299
- * 百度上传 header Date
2300
- */
2301
- bosDate: string;
2328
+ interface IReceivedConversationByTag extends IReceivedConversation {
2329
+ isTopInTag: boolean;
2330
+ }
2331
+ interface IUltraGroupConversation extends IReceivedConversation {
2332
+ channelType?: UltraGroupChannelType;
2333
+ }
2334
+ /**
2335
+ * 设置会话状态 参数 信息
2336
+ */
2337
+ interface ISetConversationStatusOptions {
2338
+ conversationType: ConversationType;
2339
+ targetId: string;
2340
+ isTop?: boolean;
2341
+ notificationStatus?: number;
2342
+ notificationLevel?: number;
2343
+ channelId?: string;
2344
+ }
2345
+ interface IUpdatedConversation {
2346
+ updatedItems: {
2347
+ [key: string]: {
2348
+ time: number;
2349
+ val: any;
2350
+ };
2351
+ };
2352
+ conversationType: number;
2353
+ targetId: string;
2354
+ latestMessage?: IReceivedMessage;
2355
+ unreadMessageCount?: number;
2356
+ hasMentioned?: boolean;
2357
+ mentionedInfo?: {
2358
+ /**
2359
+ * `@ 类型,其中 1 为 @ 所有人,2 为 @ 部分人`
2360
+ */
2361
+ type: 1 | 2;
2362
+ /**
2363
+ * 被 @ 的用户 Id 列表,仅在 `type` 为 `2` 时有效
2364
+ */
2365
+ userIdList: string[];
2366
+ };
2367
+ lastUnreadTime?: number;
2368
+ notificationStatus?: number;
2369
+ notificationLevel?: number;
2370
+ isTop?: boolean;
2302
2371
  /**
2303
- * 百度上传路径
2372
+ * 会话标识
2304
2373
  */
2305
- path: string;
2374
+ channelId?: string;
2375
+ tags?: IUpdatedConversation[];
2376
+ versionTime?: number;
2306
2377
  /**
2307
- * 上传文件名,阿里上传获取下载地址时,必须使用上传文件名,所以需抛出到业务端
2378
+ * @ 消息未读数
2308
2379
  */
2309
- fileName: string;
2380
+ unreadMentionedCount?: number;
2381
+ }
2382
+ interface IBaseConversationInfo {
2383
+ conversationType: ConversationType;
2384
+ targetId: string;
2385
+ channelId: string;
2386
+ }
2387
+ interface IConversationState extends IBaseConversationInfo {
2388
+ unreadCount: number;
2389
+ unreadMentionedCount: number;
2390
+ }
2391
+ /** 指定超级群会话传参 */
2392
+ interface IUltraGroupOption {
2393
+ targetId: string;
2394
+ channelId?: string;
2395
+ }
2396
+ interface IGetUltraGroupListOption {
2397
+ targetId?: string;
2398
+ channelType?: UltraGroupChannelType;
2399
+ }
2400
+ /**
2401
+ * 超级群频道变更通知内容
2402
+ */
2403
+ interface IUltraChannelChangeInfo {
2404
+ targetId: string;
2405
+ channelId: string;
2406
+ channelType: UltraGroupChannelType;
2407
+ changeType: UltraGroupChannelChangeType;
2408
+ }
2409
+ /**
2410
+ * 超级群私有频道用户被踢出白名单通知内容
2411
+ */
2412
+ interface IUltraChannelUserKickedInfo {
2413
+ targetId: string;
2414
+ channelId: string;
2415
+ channelType: UltraGroupChannelType;
2416
+ userId: string;
2417
+ }
2418
+ /**
2419
+ * 超级群频道被删除通知内容
2420
+ */
2421
+ interface IUltraChannelDeleteInfo {
2422
+ targetId: string;
2423
+ channelId: string;
2424
+ channelType: UltraGroupChannelType;
2425
+ deleteTime: number;
2426
+ }
2427
+
2428
+ /**
2429
+ * 导航信息数据就结构
2430
+ */
2431
+ interface INaviInfo {
2310
2432
  /**
2311
- * 阿里云 oss 的 AccessKeyId
2433
+ * Navi 数据请求响应码,200 为成功请求
2312
2434
  */
2313
- osskeyId: string;
2435
+ code: number;
2314
2436
  /**
2315
- * 阿里云 oss post 请求表单域中的字段 policy
2437
+ * 获取 Navi 数据失败时的提示信息
2316
2438
  */
2317
- ossPolicy: string;
2439
+ errorMessage?: string;
2318
2440
  /**
2319
- * 阿里云 oss 根据 policy 计算的签名信息
2441
+ * 获取 Navi 数据失败时的请求 url 信息
2320
2442
  */
2321
- ossSign: string;
2443
+ url?: string;
2322
2444
  /**
2323
- * 阿里云 oss 存储空间名称
2445
+ * 请求导航数据时使用的协议:http / https
2446
+ * @description 该字段为 SDK 内增加的字段,导航接口数据中不存在
2324
2447
  */
2325
- ossBucketName: string;
2448
+ protocol: 'http' | 'https';
2326
2449
  /**
2327
- * s3 认证凭证,对应 post上传 x-amz-credential 字段
2450
+ * 获取导航时使用的 userId,小程序不走导航,故拿不到 userId
2328
2451
  */
2329
- s3Credential: string;
2452
+ userId?: string;
2330
2453
  /**
2331
- * 加密算法,对应 post上传 x-amz-algorithm 字段
2454
+ * CMP 服务 Websocket 连接地址,包含域名与端口,不含 ws 或 wss 协议头
2455
+ * @example a.domain.com:443
2332
2456
  */
2333
- s3Algorithm: string;
2457
+ server: string;
2334
2458
  /**
2335
- * s3 日期,对应 post上传 x-amz-date 字段
2459
+ * 备用 CMP 服务地址,包含域名与端口,不含 ws 或 wss 协议头,多个备用地址以 ',' 分割
2460
+ * @example a.domain.com:443,b.domain.com:443
2336
2461
  */
2337
- s3Date: string;
2462
+ backupServer?: string;
2338
2463
  /**
2339
- * s3 policy,对应 post上传 policy 字段
2464
+ * 备用 CMP 服务地址,POST 请求 TCP 连接返回的是 bs 字段,非 backupServer 字段
2340
2465
  */
2341
- s3Policy: string;
2466
+ bs?: string;
2342
2467
  /**
2343
- * s3 签名信息,对应 post上传 x-amz-signature 字段
2468
+ * RTC 服务配置,其值可能为 null、无效字符串、有效 JSON 字符串
2469
+ * 1. 公有云未开通音视频时,值为 null
2470
+ * 2. 私有云无配置时为 `{ "strategy": 0 }`
2344
2471
  */
2345
- s3Signature: string;
2472
+ voipCallInfo: string | null;
2346
2473
  /**
2347
- * s3 存储空间名称
2474
+ * 聊天室 kv 存储开关
2475
+ * @todo 需确认详细有效值
2476
+ * @description 公有云独有配置
2348
2477
  */
2349
- s3BucketName: string;
2478
+ kvStorage: number;
2350
2479
  /**
2351
- * stc Authorization
2480
+ * HttpDNS 功能开关,在 web 端无效
2481
+ * @description 公有云独有配置
2352
2482
  */
2353
- stcAuthorization: string;
2483
+ openHttpDNS: boolean;
2354
2484
  /**
2355
- * stc xAmzContentSha256
2485
+ * 历史消息云存储功能开关
2486
+ * @description
2487
+ * 1. 公有云通过 `developer.rongcloud.cn` 管理后台 `单群聊消息云端存储` 功能开关进行配置
2488
+ * 2. 私有云默认为 `true`
2356
2489
  */
2357
- stcContentSha256: string;
2490
+ historyMsg: boolean;
2358
2491
  /**
2359
- * stc date
2492
+ * 聊天室历史消息开关
2493
+ * @description
2494
+ * 1. 私有云对聊天室功能支持有限,默认为 `false`
2495
+ * 2. TODO: 公有云配置待确认
2360
2496
  */
2361
- stcDate: string;
2497
+ chatroomMsg: boolean;
2362
2498
  /**
2363
- * stc 存储空间名称
2499
+ * 文件服务器地址
2500
+ * @description
2501
+ * 1. 公有云下,该地址为七牛云服务器地址
2502
+ * 2. 私有云下,该地址为私有云自研文件服务器地址
2364
2503
  */
2365
- stcBucketName: string;
2366
- }
2367
-
2368
- interface IRTCRoomInfo {
2369
- roomId: string;
2370
- roomData: unknown[];
2371
- userCount: number;
2372
- list: unknown[];
2373
- }
2374
- interface IRtcTokenData {
2375
- rtcToken: string;
2376
- }
2377
- interface IRTCUsers {
2378
- users: {
2379
- [userId: string]: {
2380
- /**
2381
- * 发布的资源数据,是一个 JSON 字符串,解析后为发布的资源列表
2382
- */
2383
- uris?: string;
2384
- /**
2385
- * 加房间的身份标识,保存主房间 roomId
2386
- */
2387
- extra?: string;
2388
- };
2389
- };
2390
- }
2391
- interface IJoinRTCRoomData extends IRTCUsers {
2392
- token: string;
2393
- sessionId: string;
2394
- roomInfo: {
2395
- key: string;
2396
- value: string;
2397
- }[];
2398
- kvEntries: IServerRTCRoomEntry[];
2399
- offlineKickTime: number;
2400
- }
2401
- interface KVString {
2402
- [key: string]: string;
2403
- }
2404
- /**
2405
- * 设置 RTC 人员 inner、outer 数据
2406
- */
2407
- interface IRTCUserData {
2408
- [key: string]: string;
2409
- }
2410
-
2411
- interface IAsyncRes<T = any> {
2504
+ uploadServer: string;
2412
2505
  /**
2413
- * Promise 执行结果
2506
+ * 实时位置共享配置,web 端无需处理
2414
2507
  */
2415
- code: ErrorCode;
2508
+ location: null | string;
2416
2509
  /**
2417
- * 结果数据
2510
+ * 实时日志上传开关
2511
+ * @todo 需确认有效值及作用
2418
2512
  */
2419
- data?: T;
2513
+ monitor: number;
2420
2514
  /**
2421
- * 错误消息
2515
+ * 是否允许加入多聊天室开关
2422
2516
  */
2423
- msg?: string;
2424
- }
2425
- /**
2426
- * 异步任务结果定义
2427
- * @description
2428
- * 通过 `Promise.resolve` 来处理预期内的异常,进而通过 Uncatch Promise Error 暴露预期外的异常
2429
- */
2430
- declare type IPromiseResult<T> = Promise<IAsyncRes<T>>;
2431
- interface IConnectResult {
2517
+ joinMChrm: boolean;
2432
2518
  /**
2433
- * 连接错误码
2519
+ * 是否开启公众号功能:`0` 为未开启,`1` 为已开启
2434
2520
  */
2435
- code: ErrorCode;
2521
+ openMp: 0 | 1;
2436
2522
  /**
2437
- * 导航获取成功后即可有相应的值,在导航数据获取完成之前该值为 undefined
2523
+ * 是否开启用户级配置,若开启,需连接成功后立即拉取实时配置,0 | 1
2524
+ * @description
2525
+ * 配置来源:
2526
+ * 1. 导航
2527
+ * 2. 服务端实时下发
2528
+ * 已有配置字段:
2529
+ * 1. Lan. 推送使用的语言设置,用户端可自定义修改. Web 端未做设置, 只做接收
2530
+ * 2. ShPushSwit. 推送是否显示详情设置,用户端可自定义修改. Web 端未做设置, 只做接收
2531
+ * 3. MobPushSwit: Web/PC 在线,移动端不在线是否发送推送开关,用户端可自定义修改. Web 端未做设置, 只做接收
2532
+ * 4. OffMsgDur: 离线消息保存天数,设置天数不可大于App级对应配置,用户端可自定义修改. Web 端未做设置, 只做接收
2533
+ * 5. VoipInfo: 音视频相关配置,用户端不可自定义修改. 由服务端决定,与导航下发格式一致
2534
+ * @todo 需确认公有云与私有云区别
2438
2535
  */
2439
- userId?: string;
2440
- }
2441
-
2442
- declare enum HttpMethod {
2443
- GET = "GET",
2444
- POST = "POST"
2445
- }
2446
- interface IRequest {
2447
- url: string;
2536
+ openUS: 0 | 1;
2448
2537
  /**
2449
- * @default `HttpMethod.GET`
2538
+ * 超级群功能开关,1表示开
2450
2539
  */
2451
- method?: HttpMethod | 'GET' | 'POST';
2540
+ ugMsg?: 0 | 1;
2452
2541
  /**
2453
- * 查询数据
2542
+ * 群离线消息最大下发条数,`0` 为关闭
2543
+ * @description 公有云独有配合
2454
2544
  */
2455
- query?: {
2456
- [key: string]: string | number | null;
2457
- };
2545
+ grpMsgLimit: number;
2458
2546
  /**
2459
- * Request Header 信息
2547
+ * 消息加密开关,0 为关闭
2548
+ * @todo
2549
+ * 1. 确定其控制的功能
2550
+ * 2. 确定 web 相关性
2460
2551
  */
2461
- headers?: {
2462
- [key: string]: string;
2463
- };
2552
+ isFormatted: number;
2464
2553
  /**
2465
- * Request Body 数据
2554
+ * GIF 动图大小限制,默认 2048 KB
2466
2555
  */
2467
- body?: Object | string;
2556
+ gifSize: number;
2468
2557
  /**
2469
- * 超时设置
2470
- * @default 10 * 1000 毫秒
2558
+ * 上传小视频时长限制,单位:秒
2559
+ * @description 公有云字段,即私有云配置中的 `uploadVideoTimeLimit`
2471
2560
  */
2472
- timeout?: number;
2561
+ videoTimes?: number;
2473
2562
  /**
2474
- * 期望返回的数据格式,如果为 json 则返回后会对返回的数据进行一次 JSON.parse, 在小程序平台需要
2563
+ * 上传小视频时长限制,单位:秒
2564
+ * @description 私有云字段,即公有云配置中的 `videoTimes`
2475
2565
  */
2476
- dataType?: 'json' | 'text' | 'base64' | 'arraybuffer';
2477
- }
2478
- interface IStorage {
2479
- setItem(key: string, value: string): void;
2480
- getItem(key: string): string | null;
2481
- removeItem(key: string): void;
2482
- clear(): void;
2483
- }
2484
- interface IResponse {
2485
- status: number;
2486
- data?: string;
2487
- }
2488
- /**
2489
- * 网络状态枚举
2490
- */
2491
- declare enum NetworkType {
2492
- WIFI = "wifi",
2493
- FOUR_G = "4g",
2494
- THREE_G = "3g",
2495
- TWO_G = "2g",
2496
- FIVE_G = "2g",
2497
- THREE_GENT = "3gnet",
2498
- UNKONWN = "unknown"
2499
- }
2500
- interface IWebSocket {
2566
+ uploadVideoTimeLimit?: number;
2501
2567
  /**
2502
- * 监听连接建立事件,此时 WebSocket 实例已准备好收发数据
2503
- * @param callback
2568
+ * 实时日志上传开关:`0` 为关闭,`1` 为开启
2504
2569
  */
2505
- onOpen(callback: () => void): void;
2570
+ logSwitch: number;
2506
2571
  /**
2507
- * 监听连接关闭事件
2508
- * @param callback
2572
+ * 实时日志上传策略
2573
+ * @example `'{ "url": "logcollection.ronghub.com", "level": 1,"itv": 6, "times": 5 }'`
2509
2574
  */
2510
- onClose(callback: (code?: number, reason?: string) => void): void;
2575
+ logPolicy: string;
2511
2576
  /**
2512
- * 监听接收服务器消息事件
2513
- * @param callback
2577
+ * 百度 BOS 存储服务地址
2578
+ * @description 公有云独有配置
2579
+ * @example `gz.bcebos.com`
2514
2580
  */
2515
- onMessage(callback: (data: string | ArrayBuffer) => void): void;
2581
+ bosAddr?: string;
2516
2582
  /**
2517
- * 监听链接错误事件
2518
- * @param callback
2583
+ * 阿里上传配置,字符串数组,数组顺序代表 七牛、百度、阿里云 上传权重
2584
+ * @example "[{"qiniu":"upload.qiniup.com","p":"1"},{"baidu":"gz.bcebos.com","p":"2"},{"aliyun":"oss-cn-beijing.aliyuncs.com","p":"3"}]"
2519
2585
  */
2520
- onError(callback: (error: unknown) => void): void;
2586
+ ossConfig?: string;
2521
2587
  /**
2522
- * 向服务器发送数据
2523
- * @param data
2588
+ * 私有云专有属性,可用来判断当前环境是公有云还是私有云,私有云环境下该值为 `1`
2524
2589
  */
2525
- send(data: ArrayBuffer | string): void;
2590
+ type?: number;
2526
2591
  /**
2527
- * 关闭连接
2528
- * @param code
2529
- * @param reason
2592
+ * @deprecated 已废弃
2530
2593
  */
2531
- close(code?: number, reason?: string): void;
2532
- }
2533
- /**
2534
- * 平台运行时抽象
2535
- */
2536
- interface IRuntime {
2594
+ compDays: number;
2537
2595
  /**
2538
- * 平台标识
2596
+ * @deprecated 已废弃
2539
2597
  */
2540
- tag: string;
2598
+ msgAck: unknown;
2541
2599
  /**
2542
- * 发送 http 请求
2543
- * @param options
2600
+ * @deprecated 已废弃
2544
2601
  */
2545
- httpReq(options: IRequest): Promise<IResponse>;
2602
+ activeServer: string;
2546
2603
  /**
2547
- * 检测是否支持长连接
2604
+ * @deprecated 已废弃
2548
2605
  */
2549
- isSupportSocket(): boolean;
2606
+ qnAddr: string;
2550
2607
  /**
2551
- * 是否使用导航
2608
+ * @deprecated 已废弃
2552
2609
  */
2553
- useNavi: boolean;
2610
+ extkitSwitch: number;
2554
2611
  /**
2555
- * websocket 地址上附加的平台字段
2612
+ * @deprecated 已废弃
2556
2613
  */
2557
- connectPlatform: string;
2614
+ alone: boolean;
2558
2615
  /**
2559
- * websocket 地址上 apiVer 字段,代表代码是否来源于 uniapp
2616
+ * @deprecated 已废弃
2560
2617
  */
2561
- isFromUniapp: boolean;
2618
+ voipServer: string;
2562
2619
  /**
2563
- * 创建长连接实例
2620
+ * 离线日志上报地址
2621
+ * @deprecated 已废弃
2564
2622
  */
2565
- createWebSocket?(url: string, protocols?: string[]): IWebSocket;
2623
+ offlinelogserver: string;
2566
2624
  /**
2567
- * 创建数据通道
2625
+ * 在线日志上报地址
2626
+ * @deprecated 已废弃
2568
2627
  */
2569
- createDataChannel(watcher: IDataChannelWatcher, connectType?: 'websocket' | 'comet'): ADataChannel;
2628
+ onlinelogserver?: string;
2570
2629
  /**
2571
- * 存储模块
2630
+ * 链路加密字段,内容为 JSON 字符串,仅限 C++ 可用
2572
2631
  */
2573
- localStorage: IStorage;
2632
+ crypto?: string;
2574
2633
  /**
2575
- * 在某些非浏览器平台,其等同于 localStorage
2634
+ * 群组回执开关, 1: 打开,0(或者没有): 关闭
2576
2635
  */
2577
- sessionStorage: IStorage;
2636
+ grpRRVer?: number;
2578
2637
  /**
2579
- * 获取网络状态
2580
- * 2g 3g 4g wifi unkown
2638
+ * 防黑产开关, 1: 打开,0:关闭
2581
2639
  */
2582
- getNetworkType(): Promise<NetworkType>;
2640
+ openAnti?: number;
2583
2641
  }
2584
2642
 
2585
- /**
2586
- * 文件类型
2587
- */
2588
- declare enum FileType {
2643
+ interface IChatroomEntryListenerData {
2589
2644
  /**
2590
- * 图片文件
2591
- */
2592
- IMAGE = 1,
2645
+ * 更新的键
2646
+ */
2647
+ key: string;
2593
2648
  /**
2594
- * 声音文件
2595
- */
2596
- AUDIO = 2,
2649
+ * 更新的值
2650
+ */
2651
+ value: string;
2597
2652
  /**
2598
- * 视频文件
2599
- */
2600
- VIDEO = 3,
2653
+ * 更新的时间
2654
+ */
2655
+ timestamp: number;
2601
2656
  /**
2602
- * 非媒体文件
2603
- */
2604
- FILE = 4,
2657
+ * 更新的聊天室 ID
2658
+ */
2659
+ chatroomId: string;
2605
2660
  /**
2606
- * 小视频类型
2661
+ * 更新类型
2607
2662
  */
2608
- SIGHT = 5,
2663
+ type: ChatroomEntryType;
2664
+ }
2665
+ interface IChatroomRejoinedFailed {
2609
2666
  /**
2610
- * 合并转发
2667
+ * 自动重新加入的聊天室 ID
2611
2668
  */
2612
- COMBINE_HTML = 6
2669
+ chatroomId: string;
2670
+ /**
2671
+ * 自动重新加入失败的 code
2672
+ */
2673
+ errorCode: number;
2613
2674
  }
2614
-
2615
- declare enum UploadMethod {
2675
+ interface IChatroomRejoinedSuccessed {
2616
2676
  /**
2617
- * 七牛上传
2618
- */
2619
- QINIU = 1,
2677
+ * 自动重新加入的聊天室 ID
2678
+ */
2679
+ chatroomId: string;
2620
2680
  /**
2621
- * 阿里云上传
2622
- */
2623
- ALI = 2,
2681
+ * 自动重新加入的聊天室拉取消息的数量
2682
+ */
2683
+ count: number;
2684
+ }
2685
+ interface IChatroomUserChangeInfo {
2686
+ users: {
2687
+ [userId: string]: ChatroomUserChangeType;
2688
+ };
2689
+ chatroomId: string;
2690
+ }
2691
+ declare type IChatroomRejoinedInfo = IChatroomRejoinedFailed | IChatroomRejoinedSuccessed;
2692
+ /**
2693
+ * 聊天室信息
2694
+ */
2695
+ interface IChatroomListenerData {
2624
2696
  /**
2625
- * 亚马逊上传
2697
+ * SDK 内部重连聊天室信息
2698
+ */
2699
+ rejoinedRoom?: IChatroomRejoinedInfo;
2700
+ /**
2701
+ * 监听到的聊天室 KV 更新
2702
+ */
2703
+ updatedEntries?: IChatroomEntryListenerData[];
2704
+ /**
2705
+ * 登录退出的用户通知
2626
2706
  */
2627
- AWS = 3,
2707
+ userChange?: IChatroomUserChangeInfo;
2628
2708
  /**
2629
- * stc上传
2709
+ * 聊天室销毁
2630
2710
  */
2631
- STC = 4
2711
+ chatroomDestroyed?: string;
2632
2712
  }
2633
-
2634
- /**
2635
- * 连接状态
2636
- */
2637
- declare enum ConnectionStatus {
2713
+ interface IChatroomEntry {
2638
2714
  /**
2639
- * 连接成功。
2715
+ * 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符
2640
2716
  */
2641
- CONNECTED = 0,
2717
+ key: string;
2642
2718
  /**
2643
- * 连接中。
2719
+ * 属性对应的值, 最大长度 4096 字符
2644
2720
  */
2645
- CONNECTING = 1,
2721
+ value: string;
2646
2722
  /**
2647
- * 正常断开连接。
2723
+ * 设置成功后是否发送通知消息
2648
2724
  */
2649
- DISCONNECTED = 2,
2725
+ isSendNotification?: boolean;
2650
2726
  /**
2651
- * 网络不可用。
2727
+ * RC:chrmKVNotiMsg 消息中携带的附加信息
2652
2728
  */
2653
- NETWORK_UNAVAILABLE = 3,
2729
+ notificationExtra?: string;
2654
2730
  /**
2655
- * 连接关闭。
2731
+ * 用户退出聊天室时是否清除此属性
2656
2732
  */
2657
- CONNECTION_CLOSED = 4,
2733
+ isAutoDelete?: boolean;
2734
+ }
2735
+ interface IChatroomUser {
2658
2736
  /**
2659
- * 用户账户在其他设备登录,本机会被踢掉线。
2737
+ * 用户 id
2660
2738
  */
2661
- KICKED_OFFLINE_BY_OTHER_CLIENT = 6,
2739
+ id: string;
2662
2740
  /**
2663
- * websocket 连接失败
2741
+ * 加入聊天室的时间
2664
2742
  */
2665
- WEBSOCKET_UNAVAILABLE = 7,
2743
+ time: number;
2744
+ }
2745
+ interface IChatroomInfo {
2666
2746
  /**
2667
- * websocket 报错
2747
+ * 成员列表
2748
+ * @todo 需确认数组元素的数据结构
2668
2749
  */
2669
- WEBSOCKET_ERROR = 8,
2750
+ userInfos: IChatroomUser[];
2670
2751
  /**
2671
- * 用户被封禁
2752
+ * 房间内总人数
2672
2753
  */
2673
- BLOCKED = 9,
2754
+ userCount: number;
2755
+ }
2756
+ interface IRemoveChatroomEntry {
2674
2757
  /**
2675
- * 域名错误
2758
+ * 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符
2676
2759
  */
2677
- DOMAIN_INCORRECT = 12,
2760
+ key: string;
2678
2761
  /**
2679
- * 服务器主动断开
2762
+ * 删除成功后是否发送通知消息
2680
2763
  */
2681
- DISCONNECT_BY_SERVER = 13,
2764
+ isSendNotification?: boolean;
2682
2765
  /**
2683
- * 重定向
2766
+ * RC:chrmKVNotiMsg 消息中携带的附加信息
2684
2767
  */
2685
- REDIRECT = 14,
2768
+ notificationExtra?: string;
2769
+ }
2770
+ interface IRemoveChatroomEntries {
2686
2771
  /**
2687
- * appkey 不正确
2772
+ * key 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符
2688
2773
  */
2689
- APPKEY_IS_FAKE = 20,
2774
+ entries: {
2775
+ key: string;
2776
+ }[];
2690
2777
  /**
2691
- * 其他端登录,本端禁止连接和重连
2692
- */
2693
- FORBID_RECONNECT_BY_OTHER_SAME_CLIENT = 31023,
2778
+ * 删除成功后是否发送通知消息
2779
+ */
2694
2780
  /**
2695
- * 互踢次数过多(`count > 5`),此时可能出现:在其它他设备登陆有 reconnect 逻辑
2781
+ * RC:chrmKVNotiMsg 消息中携带的附加信息
2696
2782
  */
2697
- ULTRALIMIT = 1101,
2783
+ notificationExtra?: string;
2784
+ }
2785
+ interface IChatroomEntries {
2698
2786
  /**
2699
- * 开始请求导航
2787
+ * entries ,要设置的属性列表
2788
+ * key 属性名称, 支持英文字母、数字、+、=、-、_ 的组合方式, 最大长度 128 字符
2789
+ * value 属性对应的值, 最大长度 4096 字符
2700
2790
  */
2701
- REQUEST_NAVI = 201,
2791
+ entries: {
2792
+ key: string;
2793
+ value: string;
2794
+ }[];
2702
2795
  /**
2703
- * 请求导航结束
2796
+ * 设置成功后是否发送通知消息
2704
2797
  */
2705
- RESPONSE_NAVI = 202,
2706
2798
  /**
2707
- * 请求导航失败
2799
+ * RC:chrmKVNotiMsg 消息中携带的附加信息
2708
2800
  */
2709
- RESPONSE_NAVI_ERROR = 203,
2801
+ notificationExtra?: string;
2710
2802
  /**
2711
- * 请求导航超时
2803
+ * 用户退出聊天室时是否清除此属性
2712
2804
  */
2713
- RESPONSE_NAVI_TIMEOUT = 204
2805
+ isAutoDelete?: boolean;
2806
+ /**
2807
+ * 是否强制覆盖
2808
+ */
2809
+ isForce?: boolean;
2714
2810
  }
2715
2811
 
2716
- declare enum ReceivedStatus {
2717
- /**
2718
- * 已读
2719
- */
2720
- READ = 1,
2721
- /**
2722
- * 已听
2723
- */
2724
- LISTENED = 2,
2812
+ interface IUploadAuth {
2725
2813
  /**
2726
- * 已下载
2814
+ * 七牛 token 有效期
2727
2815
  */
2728
- DOWNLOADED = 4,
2816
+ deadline: number;
2729
2817
  /**
2730
- * 该消息已经被其他登录的多端收取过。( 即该消息已经被其他端收取过后。当前端才登录,并重新拉取了这条消息。客户可以通过这个状态更新 UI,比如不再提示 )
2818
+ * 七牛上传 token
2731
2819
  */
2732
- RETRIEVED = 8,
2820
+ token: string;
2733
2821
  /**
2734
- * 未读
2822
+ * 百度上传 token
2735
2823
  */
2736
- UNREAD = 0
2737
- }
2738
-
2739
- /**
2740
- * CMP/Comet 服务连接应答码
2741
- */
2742
- declare const ConnectResultCode: {
2743
- /**
2744
- * 连接成功
2745
- */
2746
- ACCEPTED: number;
2824
+ bosToken: string;
2747
2825
  /**
2748
- * 协议版本不匹配
2749
- * @description 暂未使用
2750
- */
2751
- UNACCEPTABLE_PROTOCOL_VERSION: number;
2826
+ * 百度上传 header Date
2827
+ */
2828
+ bosDate: string;
2752
2829
  /**
2753
- * 客户端(移动端 TCP 连接建立时)`info` 字段格式错误
2754
- * @description 格式:`{平台类型}-{设备信息}-{sdk版本}`。
2755
- * 其中设备信息为:{手机类型}{手机型号}{网络类型,4G/WIFI}{运营商标识, 移动/电信/联通}
2756
- */
2757
- IDENTIFIER_REJECTED: number;
2830
+ * 百度上传路径
2831
+ */
2832
+ path: string;
2758
2833
  /**
2759
- * 不支持的平台类型,一般小程序或 PC 未开通
2834
+ * 上传文件名,阿里上传获取下载地址时,必须使用上传文件名,所以需抛出到业务端
2760
2835
  */
2761
- SERVER_UNAVAILABLE: number;
2836
+ fileName: string;
2762
2837
  /**
2763
- * Token无法解析,或Token已过期
2838
+ * 阿里云 oss 的 AccessKeyId
2764
2839
  */
2765
- TOKEN_INCORRECT: number;
2840
+ osskeyId: string;
2766
2841
  /**
2767
- * 防黑产规则相关应答
2842
+ * 阿里云 oss post 请求表单域中的字段 policy
2768
2843
  */
2769
- NOT_AUTHORIZED: number;
2844
+ ossPolicy: string;
2770
2845
  /**
2771
- * 服务重定向,一般服务扩缩容时,落点已经改变,此时 userId 链接到旧的节点时,会触发该错误。
2772
- * 客户端收到该应答后须重新访问导航,重新获取 CMP 地址
2846
+ * 阿里云 oss 根据 policy 计算的签名信息
2773
2847
  */
2774
- REDIRECT: number;
2848
+ ossSign: string;
2775
2849
  /**
2776
- * 暂未使用
2850
+ * 阿里云 oss 存储空间名称
2777
2851
  */
2778
- PACKAGE_ERROR: number;
2852
+ ossBucketName: string;
2779
2853
  /**
2780
- * AppKey 已经封禁或删除
2854
+ * s3 认证凭证,对应 post上传 x-amz-credential 字段
2781
2855
  */
2782
- APP_BLOCK_OR_DELETE: number;
2856
+ s3Credential: string;
2783
2857
  /**
2784
- * 该用户 ID 已经被封禁
2858
+ * 加密算法,对应 post上传 x-amz-algorithm 字段
2785
2859
  */
2786
- BLOCK: number;
2860
+ s3Algorithm: string;
2787
2861
  /**
2788
- * Token 已过期,暂未使用
2862
+ * s3 日期,对应 post上传 x-amz-date 字段
2789
2863
  */
2790
- TOKEN_EXPIRE: number;
2864
+ s3Date: string;
2791
2865
  /**
2792
- * Token 中携带 deviceId 时,检测 Token 中 deviceId 与链接设备 deviceId 不一致
2866
+ * s3 policy,对应 post上传 policy 字段
2793
2867
  */
2794
- DEVICE_ERROR: number;
2868
+ s3Policy: string;
2795
2869
  /**
2796
- * Web 端设置安全域名后,连接端域名不在安全域名范围内
2870
+ * s3 签名信息,对应 post上传 x-amz-signature 字段
2797
2871
  */
2798
- HOSTNAME_ERROR: number;
2872
+ s3Signature: string;
2799
2873
  /**
2800
- * 开启`禁止把已在线客户端踢下线`开关后,该错误码标识已有同类型端在线,禁止链接
2874
+ * s3 存储空间名称
2801
2875
  */
2802
- HASOHTERSAMECLIENTONLINE: number;
2876
+ s3BucketName: string;
2803
2877
  /**
2804
- * 客户端连错环境,引发连接拒绝
2878
+ * stc Authorization 头
2805
2879
  */
2806
- IN_OTHER_CLUSTER: number;
2880
+ stcAuthorization: string;
2807
2881
  /**
2808
- * app 验证Token 验证不通过。所有内部超时,访问失败,返回给客户端sdk都是验证不通过,由服务端日志去看具体是那种失败。
2882
+ * stc xAmzContentSha256
2809
2883
  */
2810
- APP_AUTH_NOT_PASS: number;
2884
+ stcContentSha256: string;
2811
2885
  /**
2812
- * One Time Password 已经被使用过
2886
+ * stc date
2813
2887
  */
2814
- OTP_USED: number;
2888
+ stcDate: string;
2815
2889
  /**
2816
- * token平台验证失败
2890
+ * stc 存储空间名称
2817
2891
  */
2818
- PLATFORM_ERROR: number;
2819
- };
2892
+ stcBucketName: string;
2893
+ }
2820
2894
 
2895
+ interface IRTCRoomInfo {
2896
+ roomId: string;
2897
+ roomData: unknown[];
2898
+ userCount: number;
2899
+ list: unknown[];
2900
+ }
2901
+ interface IRtcTokenData {
2902
+ rtcToken: string;
2903
+ }
2904
+ interface IRTCUsers {
2905
+ users: {
2906
+ [userId: string]: {
2907
+ /**
2908
+ * 发布的资源数据,是一个 JSON 字符串,解析后为发布的资源列表
2909
+ */
2910
+ uris?: string;
2911
+ /**
2912
+ * 加房间的身份标识,保存主房间 roomId
2913
+ */
2914
+ extra?: string;
2915
+ };
2916
+ };
2917
+ }
2918
+ interface IJoinRTCRoomData extends IRTCUsers {
2919
+ token: string;
2920
+ sessionId: string;
2921
+ roomInfo: {
2922
+ key: string;
2923
+ value: string;
2924
+ }[];
2925
+ kvEntries: IServerRTCRoomEntry[];
2926
+ offlineKickTime: number;
2927
+ }
2928
+ interface KVString {
2929
+ [key: string]: string;
2930
+ }
2821
2931
  /**
2822
- * 内置消息类型
2932
+ * 设置 RTC 人员 inner、outer 数据
2823
2933
  */
2824
- declare enum MessageType {
2934
+ interface IRTCUserData {
2935
+ [key: string]: string;
2936
+ }
2937
+
2938
+ interface IAsyncRes<T = any> {
2825
2939
  /**
2826
- * 文字消息
2827
- */
2828
- TextMessage = "RC:TxtMsg",
2940
+ * Promise 执行结果
2941
+ */
2942
+ code: ErrorCode;
2829
2943
  /**
2830
- * 语音消息
2831
- */
2832
- VOICE = "RC:VcMsg",
2944
+ * 结果数据
2945
+ */
2946
+ data?: T;
2833
2947
  /**
2834
- * 高质量消息
2835
- */
2836
- HQ_VOICE = "RC:HQVCMsg",
2948
+ * 错误消息
2949
+ */
2950
+ msg?: string;
2951
+ }
2952
+ /**
2953
+ * 异步任务结果定义
2954
+ * @description
2955
+ * 通过 `Promise.resolve` 来处理预期内的异常,进而通过 Uncatch Promise Error 暴露预期外的异常
2956
+ */
2957
+ declare type IPromiseResult<T> = Promise<IAsyncRes<T>>;
2958
+ interface IConnectResult {
2837
2959
  /**
2838
- * 图片消息
2839
- */
2840
- IMAGE = "RC:ImgMsg",
2960
+ * 连接错误码
2961
+ */
2962
+ code: ErrorCode;
2841
2963
  /**
2842
- * GIF 消息
2843
- */
2844
- GIF = "RC:GIFMsg",
2964
+ * 导航获取成功后即可有相应的值,在导航数据获取完成之前该值为 undefined
2965
+ */
2966
+ userId?: string;
2967
+ }
2968
+
2969
+ declare enum HttpMethod {
2970
+ GET = "GET",
2971
+ POST = "POST"
2972
+ }
2973
+ interface IRequest {
2974
+ url: string;
2845
2975
  /**
2846
- * 图文消息
2847
- */
2848
- RICH_CONTENT = "RC:ImgTextMsg",
2976
+ * @default `HttpMethod.GET`
2977
+ */
2978
+ method?: HttpMethod | 'GET' | 'POST';
2849
2979
  /**
2850
- * 位置消息
2851
- */
2852
- LOCATION = "RC:LBSMsg",
2980
+ * 查询数据
2981
+ */
2982
+ query?: {
2983
+ [key: string]: string | number | null;
2984
+ };
2853
2985
  /**
2854
- * 文件消息
2855
- */
2856
- FILE = "RC:FileMsg",
2986
+ * Request Header 信息
2987
+ */
2988
+ headers?: {
2989
+ [key: string]: string;
2990
+ };
2857
2991
  /**
2858
- * 小视频消息
2859
- */
2860
- SIGHT = "RC:SightMsg",
2992
+ * Request Body 数据
2993
+ */
2994
+ body?: Object | string;
2861
2995
  /**
2862
- * 合并转发消息
2863
- */
2864
- COMBINE = "RC:CombineMsg",
2996
+ * 超时设置
2997
+ * @default 10 * 1000 毫秒
2998
+ */
2999
+ timeout?: number;
2865
3000
  /**
2866
- * 聊天室 KV 通知消息
2867
- */
2868
- CHRM_KV_NOTIFY = "RC:chrmKVNotiMsg",
3001
+ * 期望返回的数据格式,如果为 json 则返回后会对返回的数据进行一次 JSON.parse, 在小程序平台需要
3002
+ */
3003
+ dataType?: 'json' | 'text' | 'base64' | 'arraybuffer';
3004
+ }
3005
+ interface IStorage {
3006
+ setItem(key: string, value: string): void;
3007
+ getItem(key: string): string | null;
3008
+ removeItem(key: string): void;
3009
+ clear(): void;
3010
+ }
3011
+ interface IResponse {
3012
+ status: number;
3013
+ data?: string;
3014
+ }
3015
+ /**
3016
+ * 网络状态枚举
3017
+ */
3018
+ declare enum NetworkType {
3019
+ WIFI = "wifi",
3020
+ FOUR_G = "4g",
3021
+ THREE_G = "3g",
3022
+ TWO_G = "2g",
3023
+ FIVE_G = "2g",
3024
+ THREE_GENT = "3gnet",
3025
+ UNKONWN = "unknown"
3026
+ }
3027
+ interface IWebSocket {
2869
3028
  /**
2870
- * 日志通知消息
2871
- */
2872
- LOG_COMMAND = "RC:LogCmdMsg",
3029
+ * 监听连接建立事件,此时 WebSocket 实例已准备好收发数据
3030
+ * @param callback
3031
+ */
3032
+ onOpen(callback: () => void): void;
2873
3033
  /**
2874
- * 消息扩展
2875
- */
2876
- EXPANSION_NOTIFY = "RC:MsgExMsg",
3034
+ * 监听连接关闭事件
3035
+ * @param callback
3036
+ */
3037
+ onClose(callback: (code?: number, reason?: string) => void): void;
2877
3038
  /**
2878
- * 引用消息
2879
- */
2880
- REFERENCE = "RC:ReferenceMsg",
3039
+ * 监听接收服务器消息事件
3040
+ * @param callback
3041
+ */
3042
+ onMessage(callback: (data: string | ArrayBuffer) => void): void;
2881
3043
  /**
2882
- * 撤回消息
2883
- */
2884
- RECALL = "RC:RcCmd",
3044
+ * 监听链接错误事件
3045
+ * @param callback
3046
+ */
3047
+ onError(callback: (error: unknown) => void): void;
2885
3048
  /**
2886
- * 已读同步状态消息
2887
- */
2888
- READ_RECEIPT = "RC:ReadNtf",
3049
+ * 向服务器发送数据
3050
+ * @param data
3051
+ */
3052
+ send(data: ArrayBuffer | string): void;
2889
3053
  /**
2890
- * 群已读请求回执消息
2891
- */
2892
- READ_RECEIPT_REQUEST = "RC:RRReqMsg",
3054
+ * 关闭连接
3055
+ * @param code
3056
+ * @param reason
3057
+ */
3058
+ close(code?: number, reason?: string): void;
3059
+ }
3060
+ /**
3061
+ * 平台运行时抽象
3062
+ */
3063
+ interface IRuntime {
2893
3064
  /**
2894
- * 群已读响应回执消息
2895
- */
2896
- READ_RECEIPT_RESPONSE = "RC:RRRspMsg",
3065
+ * 平台标识
3066
+ */
3067
+ tag: string;
2897
3068
  /**
2898
- * 多端同步已读状态
2899
- */
2900
- SYNC_READ_STATUS = "RC:SRSMsg",
3069
+ * 发送 http 请求
3070
+ * @param options
3071
+ */
3072
+ httpReq(options: IRequest): Promise<IResponse>;
2901
3073
  /**
2902
- * 接受群已读回执更新消息(导航开关grpRRVer为1时使用)
3074
+ * 检测是否支持长连接
2903
3075
  */
2904
- GROUP_READ_RECEIPT_REQUEST = "RC:RRMsg",
3076
+ isSupportSocket(): boolean;
2905
3077
  /**
2906
- * 用户加入聊天室
3078
+ * 是否使用导航
2907
3079
  */
2908
- CHATROOM_JOIN = "RC:ChrmJoinNtf",
3080
+ useNavi: boolean;
2909
3081
  /**
2910
- * 用户退出聊天室
3082
+ * websocket 地址上附加的平台字段
2911
3083
  */
2912
- CHATROOM_LEFT = "RC:ChrmQuitNtf",
3084
+ connectPlatform: string;
2913
3085
  /**
2914
- * 用户加入退出聊天室的集合
3086
+ * websocket 地址上 apiVer 字段,代表代码是否来源于 uniapp
2915
3087
  */
2916
- CHATROOM_MERGE_CHANGE = "RC:ChrmMemChange",
3088
+ isFromUniapp: boolean;
2917
3089
  /**
2918
- * 输入状态消息
3090
+ * 创建长连接实例
2919
3091
  */
2920
- TYPING_STATUS = "RC:TypSts",
3092
+ createWebSocket?(url: string, protocols?: string[]): IWebSocket;
2921
3093
  /**
2922
- * 拦截消息,(当发送的消息的敏感词时,服务会下发一个拦截消息,内容包含被拦截消息信息)
3094
+ * 创建数据通道
2923
3095
  */
2924
- INTERCEPT = "RC:InterceptMsg"
2925
- }
2926
-
2927
- /**
2928
- * 群组 @ 类型
2929
- */
2930
- declare enum MentionedType {
3096
+ createDataChannel(watcher: IDataChannelWatcher, connectType?: 'websocket' | 'comet'): ADataChannel;
2931
3097
  /**
2932
- * 所有人
2933
- */
2934
- ALL = 1,
3098
+ * 存储模块
3099
+ */
3100
+ localStorage: IStorage;
2935
3101
  /**
2936
- * 部分人
2937
- */
2938
- SINGAL = 2
2939
- }
2940
-
2941
- interface IMetionedData {
2942
- type?: MentionedType;
2943
- userIdList?: string[];
2944
- mentionedContent?: string;
2945
- }
2946
-
2947
- declare enum LogLevel {
2948
- LOG = 0,
2949
- DEBUG = 0,
2950
- INFO = 1,
2951
- WARN = 2,
2952
- ERROR = 3,
2953
- FATAL = 4,
2954
- STATISTICS = 6,
2955
- NONE = 1000
2956
- }
2957
- declare enum LogSource {
2958
- IM = "IM",
2959
- RTC = "RTC"
2960
- }
2961
- declare enum LogTagId {
2962
- L_IMSDK_VER_O = "L-imsdk_ver-O",
2963
- A_INIT_O = "A-init-O",
2964
- L_INIT_O = "L-init-O",
2965
- P_INIT_O = "P-init-O",
2966
- A_CONNECT_T = "A-connect-T",
2967
- A_CONNECT_R = "A-connect-R",
2968
- A_CONNECT_S = "A-connect-S",
2969
- A_DISCONNECT_O = "A-disconnect-O",
2970
- A_RECONNECT_T = "A-reconnect-T",
2971
- A_RECONNECT_R = "A_RECONNECT_R",
2972
- L_CONNECT_T = "L-connect-T",
2973
- L_CONNECT_R = "L-connect-R",
2974
- L_CONNECT_S = "L-connect-S",
2975
- P_CONNECT_O = "P-connect-O",
2976
- P_CONNECT_S = "P-connect-S",
2977
- A_SEND_MSG_T = "A-send_msg-T",
2978
- A_SEND_MSG_R = "A-send_msg-R",
2979
- P_SEND_MSG_T = "P-send_msg-T",
2980
- P_SEND_MSG_R = "P-send_msg-R",
2981
- L_SEND_MSG_T = "L-send_msg-T",
2982
- L_SEND_MSG_R = "L-send_msg-R",
2983
- L_PULL_MSG_T = "L-pull_msg-T",
2984
- L_PULL_MSG_R = "L-pull_msg-R",
2985
- L_PULL_ULTRA_MSG_T = "L-pull_ultra_msg-T",
2986
- L_PULL_ULTRA_MSG_R = "L-pull_ultra_msg-R",
2987
- L_PULL_CHATROOM_KV_T = "L-pull_chatroom_kv-T",
2988
- L_PULL_CHATROOM_KV_R = "L-pull_chatroom_kv-R",
2989
- L_PULL_CHATROOM_MSG_T = "L-pull_chatroom_msg-T",
2990
- L_PULL_CHATROOM_MSG_R = "L-pull_chatroom_msg-R",
2991
- A_DELETE_MESSAGES_S = "A-delete_messages-S",
2992
- P_DELETE_MSG_S = "P-delete_msg-S",
2993
- L_PULL_CONVERSATION_S = "L-pull_conversation-S",
2994
- L_RECALL_ULTRA_MSG_S = "L-recall_ultra_msg-S",
2995
- A_REGTYP_O = "A-regtyp-O",
2996
- P_REGTYP_O = "P-regtype-O",
2997
- P_REGTYP_E = "P-regtype-E",
2998
- L_GET_NAVI_T = "L-get_navi-T",
2999
- L_GET_NAVI_R = "L-get_navi-R",
3000
- L_ENV_S = "L-Env-S",
3001
- L_GET_INDEX_NAVI_S = "L-get_index_navi-S",
3002
- A_JOIN_CHATROOM_T = "A-join_chatroom-T",
3003
- A_JOIN_CHATROOM_R = "A-join_chatroom-R",
3004
- L_JOIN_CHATROOM_T = "L-join_chatroom-T",
3005
- L_JOIN_CHATROOM_R = "L-join_chatroom-R",
3006
- A_QUIT_CHATROOM_T = "A-quit_chatroom-T",
3007
- A_QUIT_CHATROOM_R = "A-quit_chatroom-R",
3008
- L_REJOIN_CHATROOM_T = "L-rejoin_chatroom-T",
3009
- L_REJOIN_CHATROOM_R = "L-rejoin_chatroom-R",
3010
- L_MEDIA_S = "L-media-S",
3011
- L_MEDIA_UPLOAD_T = "L-media_upload-T",
3012
- L_MEDIA_UPLOAD_R = "L-media_upload-R",
3013
- G_UPLOAD_LOG_S = "G-upload_log-S",
3014
- G_UPLOAD_LOG_E = "G-upload_log-E",
3015
- G_GET_REAL_TIMELOG_COMMAND_S = "G-get_real_timelog_command-S",
3016
- L_CHECK_ALIVE_IM_T = "L-check_alive_im-T",
3017
- L_CHECK_ALIVE_IM_R = "L-check_alive_im-R",
3018
- A_GET_HISTORY_MSG_T = "A-get_history_msg-T",
3019
- A_GET_HISTORY_MSG_R = "A-get_history_msg-R",
3020
- L_GET_HISTORY_MSG_T = "L-get_history_msg-T",
3021
- L_GET_HISTORY_MSG_R = "L-get_history_msg-R",
3022
- A_CALLBACK_O = "A-callback-O",
3023
- A_CALLBACK_E = "A-callback-E"
3102
+ * 在某些非浏览器平台,其等同于 localStorage
3103
+ */
3104
+ sessionStorage: IStorage;
3105
+ /**
3106
+ * 获取网络状态
3107
+ * 2g 3g 4g wifi unkown
3108
+ */
3109
+ getNetworkType(): Promise<NetworkType>;
3024
3110
  }
3025
3111
 
3026
3112
  /**
@@ -3163,6 +3249,7 @@ interface IEngine {
3163
3249
  */
3164
3250
  connect(token: string, naviInfo: INaviInfo, reconnectKickEnable?: boolean): Promise<ErrorCode>;
3165
3251
  requestNaviInfo(uris: string[], appkey: string, token: string, checkCA?: boolean): Promise<INaviInfo | null>;
3252
+ getNaviInfoFromCache(): INaviInfo | null;
3166
3253
  /**
3167
3254
  * 上报版本信息
3168
3255
  * @param version
@@ -3215,6 +3302,13 @@ interface IEngine {
3215
3302
  list: IReceivedMessage[];
3216
3303
  hasMore: boolean;
3217
3304
  }>;
3305
+ /**
3306
+ * 获取指定消息类型的历史消息
3307
+ */
3308
+ getHistoryMessagesByObjectNames(conversationType: ConversationType, targetId: string, timestamp: number, count: number, messageTypes: string[], order: number, channelId: string): Promise<IAsyncRes<{
3309
+ list: IReceivedMessage[];
3310
+ hasMore: boolean;
3311
+ }>>;
3218
3312
  /**
3219
3313
  * 删除历史消息 通过 messageUId
3220
3314
  */
@@ -3268,6 +3362,10 @@ interface IEngine {
3268
3362
  * 会话的业务标识
3269
3363
  */
3270
3364
  channelId?: string): IPromiseResult<IReceivedConversation[]>;
3365
+ /**
3366
+ * 分页获取会话列表,仅 electron中使用
3367
+ */
3368
+ getConversationsByPage(conversationTypes: ConversationType[], startTime: number, count: number, channelId: string): IPromiseResult<IReceivedConversation[]>;
3271
3369
  /**
3272
3370
  * 获取指定会话
3273
3371
  */
@@ -3319,7 +3417,7 @@ interface IEngine {
3319
3417
  * 批量设置会话 置顶、免打扰
3320
3418
  */
3321
3419
  batchSetConversationStatus(statusList: ISetConversationStatusOptions[]): Promise<ErrorCode>;
3322
- sendMessage(conversationType: ConversationType, targetId: string, options: ISendMsgOptions, onBefore?: (messageId: number) => void): IPromiseResult<IReceivedMessage>;
3420
+ sendMessage(conversationType: ConversationType, targetId: string, options: ISendMsgOptions, onBefore?: (messageId: number) => void, traceId?: string): IPromiseResult<IReceivedMessage>;
3323
3421
  /**
3324
3422
  * 断开连接
3325
3423
  */
@@ -3540,7 +3638,7 @@ interface IEngine {
3540
3638
  /**
3541
3639
  * 获取指定人员在黑名单中的状态
3542
3640
  */
3543
- getBlacklistStatus(userId: string): IPromiseResult<string>;
3641
+ getBlacklistStatus(userId: string): IPromiseResult<number>;
3544
3642
  /**
3545
3643
  * 向本地插入一条消息,不发送到服务器
3546
3644
  */
@@ -3548,7 +3646,7 @@ interface IEngine {
3548
3646
  /**
3549
3647
  * 删除本地消息
3550
3648
  */
3551
- deleteMessages(timestamps: number[]): Promise<ErrorCode>;
3649
+ deleteMessages(messageIds: number[]): Promise<ErrorCode>;
3552
3650
  /**
3553
3651
  * 通过时间戳删除本地消息
3554
3652
  */
@@ -3570,9 +3668,10 @@ interface IEngine {
3570
3668
  */
3571
3669
  setMessageSearchField(messageId: number, content: any, searchFiles: string): Promise<ErrorCode>;
3572
3670
  /**
3573
- * 通过关键字搜索会话
3671
+ * 通过关键字与 channelId 搜索所有会话
3574
3672
  */
3575
3673
  searchConversationByContent(keyword: string, customMessageTypes: string[], channelId: string, conversationTypes?: ConversationType[]): IPromiseResult<IReceivedConversation[]>;
3674
+ searchConversationByContentWithAllChannel(keyword: string, customMessageTypes: string[], conversationTypes?: ConversationType[]): IPromiseResult<IReceivedConversation[]>;
3576
3675
  /**
3577
3676
  * 按内容搜索会话内的消息
3578
3677
  */
@@ -3580,6 +3679,19 @@ interface IEngine {
3580
3679
  messages: IReceivedMessage[];
3581
3680
  count: number;
3582
3681
  }>;
3682
+ /**
3683
+ * 按内容搜索指定会话(不区分 channelId)的消息
3684
+ */
3685
+ searchMessageByContentWithAllChannel(conversationType: ConversationType, targetId: string, keyword: string, timestamp: number, count: number): IPromiseResult<{
3686
+ messages: IReceivedMessage[];
3687
+ count: number;
3688
+ }>;
3689
+ /**
3690
+ * 按内容搜索时间范围内指定会话(不区分 channelId)的消息
3691
+ */
3692
+ searchMessageByContentInTimeRangeWithAllChannel(conversationType: ConversationType, targetId: string, keyword: string, startTime: number, endTime: number, offset: number, limit: number): IPromiseResult<{
3693
+ messages: IReceivedMessage[];
3694
+ }>;
3583
3695
  /**
3584
3696
  * 获取会话下所有未读的 @ 消息
3585
3697
  */
@@ -3592,6 +3704,10 @@ interface IEngine {
3592
3704
  * 设置消息接收状态
3593
3705
  */
3594
3706
  setMessageReceivedStatus(messageId: number, receivedStatus: number): Promise<ErrorCode>;
3707
+ /**
3708
+ * 将自己发送的指定时间之前的消息标记对方已读,状态值为 SentStatus.READ
3709
+ */
3710
+ updateMessageReceiptStatus(conversationType: ConversationType, targetId: string, timestamp: number, channelId?: string): IPromiseResult<boolean>;
3595
3711
  /**
3596
3712
  * 删除时间戳前的未读数
3597
3713
  */
@@ -3623,6 +3739,7 @@ interface IEngine {
3623
3739
  * 获取所有群聊会话 @ 消息未读数
3624
3740
  */
3625
3741
  getAllUnreadMentionedCount(): Promise<IAsyncRes<number>>;
3742
+ clearData(): Promise<IAsyncRes<boolean>>;
3626
3743
  joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData): IPromiseResult<IJoinRTCRoomData>;
3627
3744
  quitRTCRoom(roomId: string): Promise<ErrorCode>;
3628
3745
  rtcPing(roomId: string, mode: number, broadcastType?: number): Promise<ErrorCode>;
@@ -3756,6 +3873,33 @@ interface ITypingMessage {
3756
3873
  list: Array<ITypingUser>;
3757
3874
  }
3758
3875
 
3876
+ /**
3877
+ * 消息送达相关接口
3878
+ */
3879
+
3880
+ interface IDeliveredUser {
3881
+ time: number;
3882
+ userId: string;
3883
+ }
3884
+ interface IGroupMessageDeliverInfo {
3885
+ totalCount: number;
3886
+ list: IDeliveredUser[];
3887
+ }
3888
+ interface IMessageDeliver {
3889
+ deliverTime: number;
3890
+ messageUId: string;
3891
+ conversationType: ConversationType;
3892
+ targetId: string;
3893
+ }
3894
+ interface IGroupMessageDeliveredStatusInfo {
3895
+ MessageUId: string;
3896
+ deliveryCount: number;
3897
+ }
3898
+ interface IGroupMessageDeliverStatus {
3899
+ totalCount: number;
3900
+ list: IGroupMessageDeliveredStatusInfo[];
3901
+ }
3902
+
3759
3903
  /**
3760
3904
  * IndexDB中存储的log数据
3761
3905
  */
@@ -4321,6 +4465,8 @@ declare type ITagListener = () => void;
4321
4465
  declare type IConversationTagListener = () => void;
4322
4466
  declare type ItypingStateListener = (data: ITypingMessage[]) => void;
4323
4467
  declare type IMessageBlockedListener = (data: IBlockedMessageInfo) => void;
4468
+ declare type IMessageDeliveredListener = (data: IMessageDeliver[]) => void;
4469
+ declare type IGroupMessageDeliveredStatusListener = (data: IGroupMessageDeliverStatus) => void;
4324
4470
  interface IWatcher {
4325
4471
  message?: IMessageListnenr;
4326
4472
  batchMessage?: IMessagesListnenr;
@@ -4345,6 +4491,14 @@ interface IWatcher {
4345
4491
  */
4346
4492
  typingState?: ItypingStateListener;
4347
4493
  pullFinished?: ITagListener;
4494
+ /**
4495
+ * 单聊消息送达通知
4496
+ */
4497
+ messageDelivered?: IMessageDeliveredListener;
4498
+ /**
4499
+ * 群聊消息送达状态通知
4500
+ */
4501
+ groupMessageDeliveredStatus?: IGroupMessageDeliveredStatusListener;
4348
4502
  onConnecting?: () => void;
4349
4503
  onConnected?: () => void;
4350
4504
  onDisconnect?: (status: ConnectionStatus) => void;
@@ -4361,6 +4515,9 @@ interface IWatcher {
4361
4515
  ultraGroupMessageExpansionUpdated?: (list: IReceivedMessage[]) => void;
4362
4516
  ultraGroupMessageModified?: (list: IReceivedMessage[]) => void;
4363
4517
  ultraGroupMessageRecalled?: (list: IReceivedMessage[]) => void;
4518
+ ultraGroupChannelChangeType?: (list: IUltraChannelChangeInfo[]) => void;
4519
+ ultraGroupChannelUserKicked?: (list: IUltraChannelUserKickedInfo[]) => void;
4520
+ ultraGroupChannelDelete?: (list: IUltraChannelDeleteInfo[]) => void;
4364
4521
  }
4365
4522
  interface IAPIContextOption {
4366
4523
  /**
@@ -4528,11 +4685,17 @@ declare class APIContext {
4528
4685
  private _typingStatusListener;
4529
4686
  private _pullFinishedListener;
4530
4687
  private _MessageBlockedListener;
4688
+ private _messageDeliveredListerer;
4689
+ private _groupMessageDeliveredStatusListerer;
4690
+ private _callInfoListener;
4531
4691
  private _ultraGroupEnableListener;
4532
4692
  private _operateStatusListener;
4533
4693
  private _ultraGroupMessageExpansionUpdatedListener;
4534
4694
  private _ultraGroupMessageModifiedListener;
4535
4695
  private _ultraGroupMessageRecalledListener;
4696
+ private _ultraGroupChannelChangeTypeListener;
4697
+ private _ultraGroupChannelUserKickedListener;
4698
+ private _ultraGroupChannelDeleteListener;
4536
4699
  /**
4537
4700
  * rtc 数据变更通知 pluginContext
4538
4701
  */
@@ -4646,11 +4809,19 @@ declare class APIContext {
4646
4809
  list: IReceivedMessage[];
4647
4810
  hasMore: boolean;
4648
4811
  }>>;
4812
+ getHistoryMessagesByObjectNames(conversationType: ConversationType, targetId: string, timestamp: number, count: number, messageTypes: string[], order: number, channelId: string): Promise<IAsyncRes<{
4813
+ list: IReceivedMessage[];
4814
+ hasMore: boolean;
4815
+ }>>;
4649
4816
  /**
4650
4817
  * 获取会话列表
4651
4818
  * @param count 指定获取数量, 不传则获取全部会话列表,默认 `300`
4652
4819
  */
4653
4820
  getConversationList(count?: number, conversationType?: ConversationType, startTime?: number, order?: 0 | 1, channelId?: string): Promise<IAsyncRes<IReceivedConversation[]>>;
4821
+ /**
4822
+ * 分页获取会话列表,仅 electron中使用
4823
+ */
4824
+ getConversationsByPage(conversationTypes: ConversationType[], startTime: number, count: number, channelId: string): Promise<IAsyncRes<IReceivedConversation[]>>;
4654
4825
  /**
4655
4826
  * 获取单一会话数据
4656
4827
  * @param conversationType
@@ -4665,7 +4836,7 @@ declare class APIContext {
4665
4836
  /**
4666
4837
  * 获取超级群会话列表
4667
4838
  */
4668
- getUltraGroupList(): Promise<IAsyncRes<IReceivedConversation[]>>;
4839
+ getUltraGroupList(options: IGetUltraGroupListOption): Promise<IAsyncRes<IUltraGroupConversation[]>>;
4669
4840
  /**
4670
4841
  * 获取超级群免打扰列表
4671
4842
  */
@@ -4987,6 +5158,18 @@ declare class APIContext {
4987
5158
  * @param args
4988
5159
  */
4989
5160
  callExtra(method: string | keyof IExtraMethod, ...args: any[]): Promise<IAsyncRes<unknown>>;
5161
+ setCallInfo(targetId: string, key: string, value: string): Promise<IAsyncRes<{
5162
+ key: string;
5163
+ value: string;
5164
+ }>>;
5165
+ /**
5166
+ * 获取群组消息送达信息
5167
+ */
5168
+ getGroupMessageDeliverList(targetId: string, messageUId: string, channelId?: string): Promise<IAsyncRes<IGroupMessageDeliverInfo>>;
5169
+ /**
5170
+ * 获取单聊消息送达信息
5171
+ */
5172
+ getPrivateMessageDeliverTime(messageUId: string, channelId?: string): Promise<IAsyncRes<number>>;
4990
5173
  /**
4991
5174
  * 删除所有会话
4992
5175
  */
@@ -5012,7 +5195,7 @@ declare class APIContext {
5012
5195
  /**
5013
5196
  * 获取指定人员在黑名单中的状态
5014
5197
  */
5015
- getBlacklistStatus(userId: string): Promise<IAsyncRes<string>>;
5198
+ getBlacklistStatus(userId: string): Promise<IAsyncRes<number>>;
5016
5199
  /**
5017
5200
  * 向本地插入一条消息,不发送到服务器
5018
5201
  */
@@ -5020,7 +5203,7 @@ declare class APIContext {
5020
5203
  /**
5021
5204
  * 删除本地消息
5022
5205
  */
5023
- deleteMessages(timestamp: number[]): Promise<ErrorCode>;
5206
+ deleteMessages(messageIds: number[]): Promise<ErrorCode>;
5024
5207
  /**
5025
5208
  * 从本地消息数据库中删除某一会话指定时间之前的消息数据
5026
5209
  */
@@ -5049,6 +5232,10 @@ declare class APIContext {
5049
5232
  * 设置消息接收状态
5050
5233
  */
5051
5234
  setMessageReceivedStatus(messageId: number, receivedStatus: number): Promise<ErrorCode>;
5235
+ /**
5236
+ * 将自己发送的指定时间之前的消息标记对方已读,状态值为 SentStatus.READ
5237
+ */
5238
+ setMessageStatusToRead(conversationType: ConversationType, targetId: string, timestamp: number, channelId?: string): Promise<IAsyncRes<boolean>>;
5052
5239
  /**
5053
5240
  * 设置当前用户在线状态
5054
5241
  */
@@ -5064,10 +5251,18 @@ declare class APIContext {
5064
5251
  status: string;
5065
5252
  }>>;
5066
5253
  searchConversationByContent(keyword: string, customMessageTypes?: string[], channelId?: string, conversationTypes?: ConversationType[]): Promise<IAsyncRes<IReceivedConversation[]>>;
5254
+ searchConversationByContentWithAllChannel(keyword: string, customMessageTypes?: string[], conversationTypes?: ConversationType[]): Promise<IAsyncRes<IReceivedConversation[]>>;
5067
5255
  searchMessageByContent(conversationType: ConversationType, targetId: string, keyword: string, timestamp: number, count: number, total: number, channelId?: string): Promise<IAsyncRes<{
5068
5256
  messages: IReceivedMessage[];
5069
5257
  count: number;
5070
5258
  }>>;
5259
+ searchMessageByContentWithAllChannel(conversationType: ConversationType, targetId: string, keyword: string, timestamp: number, count: number): Promise<IAsyncRes<{
5260
+ messages: IReceivedMessage[];
5261
+ count: number;
5262
+ }>>;
5263
+ searchMessageByContentInTimeRangeWithAllChannel(conversationType: ConversationType, targetId: string, keyword: string, startTime: number, endTime: number, offset: number, limit: number): Promise<IAsyncRes<{
5264
+ messages: IReceivedMessage[];
5265
+ }>>;
5071
5266
  getUnreadMentionedMessages(conversationType: ConversationType, targetId: string, channelId?: string): IReceivedMessage[];
5072
5267
  clearUnreadCountByTimestamp(conversationType: ConversationType, targetId: string, timestamp: number, channelId?: string): Promise<ErrorCode>;
5073
5268
  /**
@@ -5096,6 +5291,7 @@ declare class APIContext {
5096
5291
  }>>;
5097
5292
  getConversationListWithAllChannel(): Promise<IAsyncRes<IReceivedConversation[]>>;
5098
5293
  getConversationListWithAllChannelByPage(index: number, limit: number): Promise<IAsyncRes<IReceivedConversation[]>>;
5294
+ clearData(): Promise<IAsyncRes<boolean>>;
5099
5295
  /**
5100
5296
  * 加入房间
5101
5297
  * @param roomId
@@ -5208,6 +5404,10 @@ declare class PluginContext {
5208
5404
  * 目前仅通知:主播加入、退出房间的人员列表变更,发布、取消发布资源列表变更
5209
5405
  */
5210
5406
  onrtcdatachange?(data: IServerRTCRoomEntry[], roomdId?: string): void;
5407
+ /**
5408
+ * beem 专有接口,做 groupCall 用到
5409
+ */
5410
+ onCallInfo?(data: string): void;
5211
5411
  /**
5212
5412
  * 获取 `@rongcloud/engine` 包版本
5213
5413
  */
@@ -5251,6 +5451,10 @@ declare class PluginContext {
5251
5451
  * 获取加入 RTC 房间的用户信息(当前仅能查自己的)
5252
5452
  */
5253
5453
  getRTCJoinedUserInfo(userId: string): IPromiseResult<IRTCJoinedInfo[]>;
5454
+ setCallInfo(targetId: string, key: string, value: string): IPromiseResult<{
5455
+ key: string;
5456
+ value: string;
5457
+ }>;
5254
5458
  }
5255
5459
 
5256
5460
  declare class RTCPluginContext extends PluginContext {
@@ -5383,11 +5587,17 @@ interface IEngineWatcher {
5383
5587
  ultraGroupMessageExpansionUpdated: (list: IReceivedMessage[]) => void;
5384
5588
  ultraGroupMessageModified: (list: IReceivedMessage[]) => void;
5385
5589
  ultraGroupMessageRecalled: (list: IReceivedMessage[]) => void;
5590
+ ultraGroupChannelChangeType: (list: IUltraChannelChangeInfo[]) => void;
5591
+ ultraGroupChannelUserKicked: (list: IUltraChannelUserKickedInfo[]) => void;
5592
+ ultraGroupChannelDelete: (list: IUltraChannelDeleteInfo[]) => void;
5386
5593
  /**
5387
5594
  * RTC 数据变更
5388
5595
  */
5389
5596
  onRTCDataChange: (data: IServerRTCRoomEntry[], roomId?: string) => void;
5390
5597
  pullFinished: () => void;
5598
+ messageDelivered: (data: IMessageDeliver[]) => void;
5599
+ groupMessageDeliveredStatus: (data: IGroupMessageDeliverStatus) => void;
5600
+ callInfo: (data: string) => void;
5391
5601
  }
5392
5602
  /**
5393
5603
  * 引擎定义
@@ -5403,7 +5613,6 @@ declare abstract class AEngine implements IEngine {
5403
5613
  protected readonly _appkey: string;
5404
5614
  protected readonly _apiVer: string;
5405
5615
  protected readonly _apiVersion: string;
5406
- protected _naviInfo: INaviInfo | null;
5407
5616
  /**
5408
5617
  * 引擎初始化
5409
5618
  * @param _appkey
@@ -5418,7 +5627,7 @@ declare abstract class AEngine implements IEngine {
5418
5627
  */
5419
5628
  getNaviInfo(token: string, dynamicUris: string[], force: boolean, checkCA?: boolean): Promise<INaviInfo | null>;
5420
5629
  protected setNaviInfo2Cache(token: string, naviInfo: INaviInfo): void;
5421
- getInfoFromCache(token: string): INaviInfo | null;
5630
+ abstract getNaviInfoFromCache(): INaviInfo | null;
5422
5631
  /**
5423
5632
  * 清空导航数据:内存数据、缓存数据
5424
5633
  */
@@ -5478,6 +5687,13 @@ declare abstract class AEngine implements IEngine {
5478
5687
  list: IReceivedMessage[];
5479
5688
  hasMore: boolean;
5480
5689
  }>;
5690
+ /**
5691
+ * 获取指定消息类型的历史消息
5692
+ */
5693
+ abstract getHistoryMessagesByObjectNames(conversationType: ConversationType, targetId: string, timestamp: number, count: number, messageTypes: string[], order: number, channelId: string): Promise<IAsyncRes<{
5694
+ list: IReceivedMessage[];
5695
+ hasMore: boolean;
5696
+ }>>;
5481
5697
  /**
5482
5698
  * 删除历史消息 通过 messageUId
5483
5699
  */
@@ -5531,6 +5747,10 @@ declare abstract class AEngine implements IEngine {
5531
5747
  * 会话的业务标识
5532
5748
  */
5533
5749
  channelId?: string): IPromiseResult<IReceivedConversation[]>;
5750
+ /**
5751
+ * 分页获取会话列表,仅 electron中使用
5752
+ */
5753
+ abstract getConversationsByPage(conversationTypes: ConversationType[], startTime: number, count: number, channelId: string): IPromiseResult<IReceivedConversation[]>;
5534
5754
  /**
5535
5755
  * 获取指定会话
5536
5756
  */
@@ -5790,7 +6010,7 @@ declare abstract class AEngine implements IEngine {
5790
6010
  /**
5791
6011
  * 获取所有超级群会话列表
5792
6012
  */
5793
- abstract getUltraGroupList(): Promise<IAsyncRes<IReceivedConversation[]>>;
6013
+ abstract getUltraGroupList(options: IGetUltraGroupListOption): Promise<IAsyncRes<IUltraGroupConversation[]>>;
5794
6014
  /**
5795
6015
  * 获取超级群免打扰列表
5796
6016
  */
@@ -5828,7 +6048,7 @@ declare abstract class AEngine implements IEngine {
5828
6048
  * @param targetId
5829
6049
  * @param options
5830
6050
  */
5831
- abstract sendUltraMessage(targetId: string, options: ISendMsgOptions, traceId?: string): Promise<IAsyncRes>;
6051
+ abstract sendUltraMessage(targetId: string, options: ISendMsgOptions, onSendBefore?: (messageId: number) => void, traceId?: string): Promise<IAsyncRes>;
5832
6052
  /**
5833
6053
  * 超级群消息正在输入中
5834
6054
  * @param options
@@ -5896,7 +6116,7 @@ declare abstract class AEngine implements IEngine {
5896
6116
  /**
5897
6117
  * 获取指定人员在黑名单中的状态
5898
6118
  */
5899
- abstract getBlacklistStatus(userId: string): IPromiseResult<string>;
6119
+ abstract getBlacklistStatus(userId: string): IPromiseResult<number>;
5900
6120
  /**
5901
6121
  * 向本地插入一条消息,不发送到服务器
5902
6122
  */
@@ -5904,7 +6124,7 @@ declare abstract class AEngine implements IEngine {
5904
6124
  /**
5905
6125
  * 删除本地消息
5906
6126
  */
5907
- abstract deleteMessages(timestamps: number[]): Promise<ErrorCode>;
6127
+ abstract deleteMessages(messageIds: number[]): Promise<ErrorCode>;
5908
6128
  /**
5909
6129
  * 通过时间戳删除本地消息
5910
6130
  */
@@ -5929,6 +6149,10 @@ declare abstract class AEngine implements IEngine {
5929
6149
  * 通过关键字搜索会话
5930
6150
  */
5931
6151
  abstract searchConversationByContent(keyword: string, customMessageTypes: string[], channelId: string, conversationTypes?: ConversationType[]): IPromiseResult<IReceivedConversation[]>;
6152
+ /**
6153
+ * 通过关键字搜索所有会话
6154
+ */
6155
+ abstract searchConversationByContentWithAllChannel(keyword: string, customMessageTypes: string[], conversationTypes?: ConversationType[]): IPromiseResult<IReceivedConversation[]>;
5932
6156
  /**
5933
6157
  * 按内容搜索会话内的消息
5934
6158
  */
@@ -5936,6 +6160,19 @@ declare abstract class AEngine implements IEngine {
5936
6160
  messages: IReceivedMessage[];
5937
6161
  count: number;
5938
6162
  }>;
6163
+ /**
6164
+ * 按内容搜索指定会话(不区分 channelId)的消息
6165
+ */
6166
+ abstract searchMessageByContentWithAllChannel(conversationType: ConversationType, targetId: string, keyword: string, timestamp: number, count: number): IPromiseResult<{
6167
+ messages: IReceivedMessage[];
6168
+ count: number;
6169
+ }>;
6170
+ /**
6171
+ * 按内容搜索时间范围内指定会话(不区分 channelId)的消息
6172
+ */
6173
+ abstract searchMessageByContentInTimeRangeWithAllChannel(conversationType: ConversationType, targetId: string, keyword: string, startTime: number, endTime: number, offset: number, limit: number): IPromiseResult<{
6174
+ messages: IReceivedMessage[];
6175
+ }>;
5939
6176
  /**
5940
6177
  * 获取会话下所有未读的 @ 消息
5941
6178
  */
@@ -5948,6 +6185,10 @@ declare abstract class AEngine implements IEngine {
5948
6185
  * 设置消息接收状态
5949
6186
  */
5950
6187
  abstract setMessageReceivedStatus(messageId: number, receivedStatus: number): Promise<ErrorCode>;
6188
+ /**
6189
+ * 将自己发送的指定时间之前的消息标记对方已读,状态值为 SentStatus.READ
6190
+ */
6191
+ abstract updateMessageReceiptStatus(conversationType: ConversationType, targetId: string, timestamp: number, channelId?: string): IPromiseResult<boolean>;
5951
6192
  /**
5952
6193
  * 删除时间戳前的未读数
5953
6194
  */
@@ -5981,6 +6222,18 @@ declare abstract class AEngine implements IEngine {
5981
6222
  list: IReceivedMessage[];
5982
6223
  hasMore: boolean;
5983
6224
  }>;
6225
+ /**
6226
+ * 获取群组消息送达列表
6227
+ */
6228
+ abstract getGroupMessageDeliverList(targetId: string, messageUId: string, channelId: string): IPromiseResult<IGroupMessageDeliverInfo>;
6229
+ /**
6230
+ * 获取单聊消息送达列表
6231
+ */
6232
+ abstract getPrivateMessageDeliverTime(messageUId: string, channelId: string): IPromiseResult<number>;
6233
+ abstract setCallInfo(targetId: string, key: string, value: string): IPromiseResult<{
6234
+ key: string;
6235
+ value: string;
6236
+ }>;
5984
6237
  /**
5985
6238
  * 无差别获取本地免打扰列表
5986
6239
  */
@@ -6001,6 +6254,7 @@ declare abstract class AEngine implements IEngine {
6001
6254
  * 获取本地全部会话的状态
6002
6255
  */
6003
6256
  abstract getAllConversationState(): Promise<IAsyncRes<IConversationState[]>>;
6257
+ abstract clearData(): Promise<IAsyncRes<boolean>>;
6004
6258
  abstract joinRTCRoom(roomId: string, mode: RTCMode, broadcastType?: number, joinType?: RTCJoinType, innerUserDatas?: IRTCUserData, outerUserDatas?: IRTCUserData): IPromiseResult<IJoinRTCRoomData>;
6005
6259
  abstract quitRTCRoom(roomId: string): Promise<ErrorCode>;
6006
6260
  abstract rtcPing(roomId: string, mode: number, broadcastType?: number): Promise<ErrorCode>;
@@ -6189,6 +6443,7 @@ declare const isHttpUrl: (value: any) => boolean;
6189
6443
  */
6190
6444
  declare const notEmptyObject: (val: Object) => boolean;
6191
6445
  declare const isValidConversationType: (conversation: number) => boolean;
6446
+ declare const isValidChannelId: (value: any) => boolean;
6192
6447
  /**
6193
6448
  * 判断是否是一个有效的文件类型
6194
6449
  */
@@ -6229,7 +6484,7 @@ declare function insertIntoLogCache(logLevel: LogLevel, tagId: string, logObj: a
6229
6484
  * @param level
6230
6485
  * @param args
6231
6486
  */
6232
- declare function _defaultStdout(level: LogLevel, msgTag: string, logContent?: any): void;
6487
+ declare function _defaultStdout(level: LogLevel, msgTag: string, ...logContents: any[]): void;
6233
6488
  /**
6234
6489
  * Trace ID 生成器
6235
6490
  */
@@ -6344,6 +6599,10 @@ declare class Logger {
6344
6599
  }
6345
6600
  declare const _default: Logger;
6346
6601
 
6602
+ declare const randomNum: (min: number, max: number) => number;
6603
+ declare const getUUID: () => string;
6604
+ declare const getUUID22: () => string;
6605
+
6347
6606
  /**
6348
6607
  * 预定义的验证规则,只包含`值类型`数据验证
6349
6608
  * 引用类型数据需使用自定义 validator 校验函数进行校验
@@ -6380,7 +6639,11 @@ declare enum AssertRules {
6380
6639
  /**
6381
6640
  * ChannelId 验证,必须为 String 且不超过 20 位 且不能包含下划线
6382
6641
  */
6383
- CHANNEL_ID = 7
6642
+ CHANNEL_ID = 7,
6643
+ /**
6644
+ * 类型为会话
6645
+ */
6646
+ CONVERSATION = 8
6384
6647
  }
6385
6648
  declare class RCAssertError extends Error {
6386
6649
  constructor(message?: string);
@@ -6581,4 +6844,4 @@ declare const ONE_LOG_SIZE_MAX = 1000;
6581
6844
  */
6582
6845
  declare const version: string;
6583
6846
 
6584
- export { AEngine, APIContext, AppStorage, AssertRules, CONNECTION_TYPE, CPP_PROTOCAL_MSGTYPE_OPTION, CallLibMsgType, ChatroomEntryType, ChatroomUserChangeType as ChatroomMemberChangeType, CometChannel, ConnectResultCode, ConnectionStatus, ConversationType, DB_LOG_FLUSH_FREQUENCY, DB_LOG_MAX_SIZE, 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, IGetMsgOption, IInsertMsgOptions, IIsValidExpansion, IJoinRTCRoomData, ILocalReadReceiptInfo, ILocalTagStatus, ILogExtensions, ILogInfo, ILogInit, IM_CHATROOM_PULL_INTERVAL_TIME, 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, IRTCRoomBindOption, IRTCRoomInfo, IRTCUserData, IRTCUsers, IReadReceiptInfo, IRealTimeLog, IRecallMsgContent, 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, IUltraExMsgOptions, IUltraGroupOption, IUltraModifyMsgOptions, IUltraMsgQueryOptions, IUpdatedConversation, IUpdatedExpansion, IUploadAuth, IUserProfile, IWatcher, IWebSocket, ItypingStateListener, KVString, LiveRole, LiveType, LogLevel, LogSource, LogTagId, Logger, MAX_MESSAGE_CONTENT_BYTES, MAX_MESSAGE_EXPANSION_KEY_LENGTH, MAX_MESSAGE_EXPANSION_VAL_LENGTH, MINI_COMET_CONNECT_URIS, MINI_SOCKET_CONNECT_URIS, MentionedType, MessageBlockType, MessageDirection, MessageType, NAVI_CACHE_DURATION, NAVI_REQ_TIMEOUT, NetworkType, NotificationLevel, NotificationStatus, ONE_LOG_SIZE_MAX, OperateStatus, PING_REQ_TIMEOUT, PUBLIC_CLOUD_NAVI_URIS, PluginContext, RCAssertError, REAT_TIME_LOG_SIZE, RTCApiType, RTCIdentityChangeType, RTCJoinType, RTCMode, RTCPluginContext, ReceivedStatus, SEND_MESSAGE_TYPE_OPTION, STATUS_MESSAGE, STORAGE_ROOT_KEY, TagChangeType, UploadMethod, VersionManage, WEB_SOCKET_TIMEOUT, WebSocketChannel, appendUrl, assert, clone, cloneByJSON, _default as engineLogger, forEach, formatConnectResponseCode, getBrowser, getMimeKey, getUploadFileName, indexOf, isArray, isArrayBuffer, isBoolean, isFunction, isHttpUrl, isInObject, isInclude, isNull, isNumber, isObject, isString, isUndefined, isValidChrmEntryKey, isValidChrmEntryValue, isValidConversationType, isValidExpansion, isValidFileType, base as logger, map, notEmptyArray, notEmptyObject, notEmptyString, pushConfigsToJSON, pushJSONToConfigs, todo, usingCppEngine, validate, version };
6847
+ export { AEngine, APIContext, AppStorage, AssertRules, CONNECTION_TYPE, CPP_PROTOCAL_MSGTYPE_OPTION, CallLibMsgType, ChatroomEntryType, ChatroomUserChangeType, CometChannel, ConnectResultCode, ConnectionStatus, ConversationType, DB_LOG_FLUSH_FREQUENCY, DB_LOG_MAX_SIZE, DelayTimer, ErrorCode, EventEmitter, FileType, HttpMethod, IAPIContextOption, IAndroidPushConfig, IAsyncRes, IBaseConversationInfo, IBlockedMessageInfo, ICancelRoomPKOptions, IChatRoomEntries, IChatRoomEntry, IChatroomEntries, IChatroomEntry, IChatroomEntryListenerData, IChatroomInfo, IChatroomListener, IChatroomListenerData, IChatroomRejoinedFailed, IChatroomRejoinedInfo, IChatroomRejoinedSuccessed, IChatroomUser, IChatroomUserChangeInfo, IChrmKVEntries, IChrmKVEntry, IConnectResult, IConnectionStatusListener, IConversationOption, IConversationState, IConversationStateListener, IConversationTag, IConversationTagListener, IDataChannelWatcher, IDeletedExpansion, IDeliveredUser, IEndRoomPKOptions, IEngine, IEngineWatcher, IEventListener, IExpansionListener, IExpansionListenerData, IExpansionMsgContent, IExtraMethod, IGetMsgOption, IGetUltraGroupListOption, IGooglePushConfig, IGroupMessageDeliverInfo, IGroupMessageDeliverStatus, IInsertMsgOptions, IIsValidExpansion, IJoinRTCRoomData, ILocalReadReceiptInfo, ILocalTagStatus, ILogExtensions, ILogInfo, ILogInit, IM_CHATROOM_PULL_INTERVAL_TIME, IM_COMET_PULLMSG_TIMEOUT, IM_PING_INTERVAL_TIME, IM_PING_MIN_TIMEOUT, IM_PING_TIMEOUT, IM_SIGNAL_TIMEOUT, IMessageDeliver, IMessageDeliveredListener, IMessageListnenr, IMessageReader, IMessageReaderResponse, IMetionedData, INaviInfo, IPluginGenerator, IPromiseResult, IPushConfig, IRTCInnerListener, IRTCJoinedInfo, IRTCRoomBindOption, IRTCRoomInfo, IRTCUserData, IRTCUsers, IReadReceiptInfo, IRealTimeLog, IRecallMsgContent, 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, IUltraExMsgOptions, IUltraGroupConversation, IUltraGroupOption, IUltraModifyMsgOptions, IUltraMsgQueryOptions, IUpdatedConversation, IUpdatedExpansion, IUploadAuth, IUserProfile, IWatcher, IWebSocket, IiOSPushConfig, ItypingStateListener, KVString, LiveRole, LiveType, LogLevel, LogSource, LogTagId, Logger, MAX_MESSAGE_CONTENT_BYTES, MAX_MESSAGE_EXPANSION_KEY_LENGTH, MAX_MESSAGE_EXPANSION_VAL_LENGTH, MINI_COMET_CONNECT_URIS, MINI_SOCKET_CONNECT_URIS, MentionedType, MessageBlockType, MessageDirection, MessageType, NAVI_CACHE_DURATION, NAVI_REQ_TIMEOUT, NetworkType, NotificationLevel, NotificationStatus, ONE_LOG_SIZE_MAX, OperateStatus, PING_REQ_TIMEOUT, PUBLIC_CLOUD_NAVI_URIS, PluginContext, RCAssertError, REAT_TIME_LOG_SIZE, RTCApiType, RTCIdentityChangeType, RTCJoinType, RTCMode, RTCPluginContext, ReceivedStatus, SEND_MESSAGE_TYPE_OPTION, STATUS_MESSAGE, STORAGE_ROOT_KEY, TagChangeType, UltraGroupChannelChangeType, UltraGroupChannelType, UltraMsgChangeType, UltraMsgSubChangeType, UploadMethod, VersionManage, WEB_SOCKET_TIMEOUT, WebSocketChannel, appendUrl, assert, clone, cloneByJSON, _default as engineLogger, forEach, formatConnectResponseCode, getBrowser, getMimeKey, getUUID, getUUID22, getUploadFileName, indexOf, isArray, isArrayBuffer, isBoolean, isFunction, isHttpUrl, isInObject, isInclude, isNull, isNumber, isObject, isString, isUndefined, isValidChannelId, isValidChrmEntryKey, isValidChrmEntryValue, isValidConversationType, isValidExpansion, isValidFileType, base as logger, map, notEmptyArray, notEmptyObject, notEmptyString, pushConfigsToJSON, pushJSONToConfigs, randomNum, todo, usingCppEngine, validate, version };