> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stmlink.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RTCEngineIMDelegate

> iOS SRTC 音视频 SDK RTCEngineIMDelegate 接口参考

## **连接相关回调**

### onImConnectSucceed:sessionId:()

`- (void)onImConnectSucceed:(NSString *)userId sessionId:(NSString *)sessionId`

连接成功回调

调用 `enableImWithToken:()` 接口执行启用即时通讯操作，当连接成功后，会收到该事件通知，如果遇到错误 SDK 会抛出 `onImDisconnected:errCode:errMsg:()` 回调。

**参数**

| userId    | 用户标识 |
| --------- | ---- |
| sessionId | 会话标识 |

### onImReconnecting()

`- (void)onImReconnecting`

开始重连回调

连接断开并开始重连时触发，如果遇到错误 SDK 会抛出 `onImDisconnected:errCode:errMsg:()` 回调。

### onImReconnected()

`- (void)onImReconnected`

重连成功回调

断线重连成功后触发，如果遇到错误 SDK 会抛出 `onImDisconnected:errCode:errMsg:()` 回调。

### onImDisconnected:errCode:errMsg:()

`- (void)onImDisconnected:(RTCImDisconnectReason)reason errCode:(RTCEngineError)errCode errMsg:(nullable NSString *)errMsg`

连接断开事件或者被动断开连接回调

当断开原因为`RTCImDisconnectReasonError`时，表示 SDK 抛出的不可恢复的错误，比如鉴权失败等，此时需要重新获取鉴权令牌才可重新启用即时通讯服务。具体错误码参考文档：[错误码表](https://www.yuque.com/anyconf/rtcengine/hf08uk#aP2yB)

当断开原因非`RTCImDisconnectReasonError`时，表示被动断开连接。具体离开原因参考文档：[断开原因](https://www.yuque.com/anyconf/rtcengine/yi50z7#jMnRV)

**参数**

| reason  | 断开原因 |
| ------- | ---- |
| errCode | 错误码  |
| errMsg  | 错误信息 |

## **消息相关回调**

### onImMessage:action:userId:sessionId:nickname:()

`- (void)onImMessage:(NSString *)content action:(NSString *)action userId:(nullable NSString *)userId sessionId:(nullable NSString *)sessionId nickname:(nullable NSString *)nickname`

接收消息回调

应用层业务功能通过后台接口发送消息操作事件，SDK 会通过这个回调通知您。

**参数**

| content   | 消息内容 |
| --------- | ---- |
| action    | 消息标识 |
| userId    | 用户标识 |
| sessionId | 会话标识 |
| nickname  | 用户昵称 |
