Tutorial: 集成指引

集成指引

关于 chat-uikit-engine

chat-uikit-engine 是基于腾讯云 Chat SDK 的封装服务于 Chat UI 的 service(服务)、model(模块) 和 store(数据管理中心),它提供了一些通用的 TUIModel,包含 ConversationModel、MessageModel 等。

引入方式

import TUIChatEngine, {
  TUIConversationService,
  TUIChatService,
  TUIGroupService,
  TUIUserService,
  TUITranslateService,
  TUIStore,
} from '@tencentcloud/chat-uikit-engine';

功能说明

TUIChatEngine - 默认导出模块,无 UI 集成时主要负责 Chat SDK 实例化&登录、登出、实例销毁、日志输出控制等基础能力。
TUIConversationService - 主要负责会话相关的业务逻辑。
TUIChatService - 主要负责聊天相关的业务逻辑。
TUIGroupService - 主要负责群组管理相关的业务逻辑。
TUIUserService - 主要负责用户相关的业务逻辑。
TUITranslateService - 主要负责国际化翻译相关的业务逻辑,如果不需要此项能力,可忽略。
TUIStore - 主要负责 TUIChatEngine 层的数据管理。

注意:以上模块根据业务需要按需引入即可。

chat-uikit-engine 集成

步骤 1:下载 chat-uikit-engine

npm install @tencentcloud/chat-uikit-engine

步骤 2:登录 chat-uikit-engine

import TUIChatEngine from '@tencentcloud/chat-uikit-engine';

// login TUIChatEngine
TUIChatEngine.login({
 SDKAppID: xxx,
 userID: 'xxx',
 userSig: 'xxx',
 useUploadPlugin: true, // 是否开启上传插件,true 为开启。即时通信 Chat SDK 发送图片、语音、视频、文件等消息需要使用上传插件,将文件上传到腾讯云对象存储。
});

chat-uikit-engine 使用

创建第一个会话

步骤 1:监听 conversationList

import { TUIStore } from '@tencentcloud/chat-uikit-engine';

// list 为 conversationList,item 为 conversation model,当触发 conversationList 变化时,都可以 watch 到新的 conversationList
TUIStore.watch(StoreName.CONV, {
  conversationList: (list: Array<IConversationModel>) => {
    console.log(list) // conversationList<IConversationModel>
  },
});

步骤 2:创建会话

创建会话后,可以通过 步骤1 获取更新后的会话列表

import { TUIConversationService } from '@tencentcloud/chat-uikit-engine';

 TUIConversationService.getConversationProfile('C2Cuser1').catch((error) => {
   console.log(error);
 });

发送第一条消息

步骤 1:监听 messageList

import { TUIStore } from '@tencentcloud/chat-uikit-engine';

// list 为 messageList 为 message model,当接受到新的消息或发送消息后,都可以 watch 获取到新的 messageList
TUIStore.watch(StoreName.CHAT, {
  messageList: (list: Array<IMessageListModel>) => {
    console.log(list) // messageList<IMessageListModel>
  },
});

步骤 2:发送第一条消息

发送第一条消息后,可以通过 步骤1 获取更新后的消息列表

import { TUIChatService } from '@tencentcloud/chat-uikit-engine';

TUIChatService.sendTextMessage({
  payload: {
    text: 'Hello world!'
  },
}).catch((error) => {
  console.log(error);
});

常见问题

1. 什么是 UserSig?

UserSig 是用户登录即时通信 IM 的密钥,其本质是对 UserID 等信息加密后得到的密文。

2. 如何生成 UserSig?

UserSig 签发方式是将 UserSig 的计算代码集成到您的服务端,并提供面向项目的接口,在需要 UserSig 时由您的项目向业务服务器发起请求获取动态 UserSig。更多详情请参见 服务端生成 UserSig

本文示例代码采用的获取 UserSig 的方案是在客户端代码中配置 SECRETKEY,该方法中 SECRETKEY 很容易被反编译逆向破解,一旦您的密钥泄露,攻击者就可以盗用您的腾讯云流量,因此该方法仅适合本地跑通功能调试。 正确的 UserSig 签发方式请参见上文。