启用
复制
询问AI
// im会话id
let imSid = "";
let enableIm = async () => {
// 调后台api获取启用im token
// api.getImToken
let token = "后台返回的启用im token";
imSid = await srtc.enableIm(token);
}
```typescript
### 接收im消息
```typescript
srtc.onNotifyImEvent = (evt: ImEvent) => {
console.log('收到im事件', evt);
switch (evt.type) {
case ImEventType.IM_MSG:
// 收到im消息
// evt.data as ImMsgData
break;
}
}
发送im消息
发送im消息都需要通过后台api,这样可以根据自己的业务做如敏感词拦截等处理复制
询问AI
// 调后台api发送im消息
// api.sendImMsg
```typescript
### 开始重连/重连成功
当网络发生波动时,会触发重连开始事件,成功后会触发重连成功事件
```typescript
// 在onNotifyImEvent里
case ImEventType.RECONNECTING:
// 开始重连
break;
case ImEventType.RECONNECTED:
// 重连成功
break;
停用/断开
断开分主动停用和被动(发生不可恢复错误时)断开复制
询问AI
// 主动停用
await srtc.disableIm();
// 界面刷新清理
// 被动断开
// 在onNotifyImEvent里
case ImEventType.DISCONNECTED:
let data = (evt.data as ImDisconnectEventData);
// 可根据reason提示退出原因
alert('im已断开 reason:' + data.reason);
// 界面刷新清理
imSid = "";
break;
```typescript