事件回调接口

最近更新时间:2019-08-30 18:50:16

TIMAddRecvNewMsgCallback

增加接收新消息回调。

原型

TIM_DECL void TIMAddRecvNewMsgCallback(TIMRecvNewMsgCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMRecvNewMsgCallback 新消息回调函数,请参考 TIMRecvNewMsgCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

如果用户是登录状态,IM SDK 收到新消息会通过此接口设置的回调抛出,另外需要注意,抛出的消息不一定是未读的消息,只是本地曾经没有过的消息(例如在另外一个终端已读,拉取最近联系人消息时可以获取会话最后一条消息,如果本地没有,会通过此方法抛出)。在用户登录之后,IM SDK 会拉取离线消息,为了不漏掉消息通知,需要在登录之前注册新消息通知。

TIMRemoveRecvNewMsgCallback

删除接收新消息回调。

原型

TIM_DECL void TIMRemoveRecvNewMsgCallback(TIMRecvNewMsgCallback cb);

参数

参数 类型 含义
cb TIMRecvNewMsgCallback 新消息回调函数,请参考 TIMRecvNewMsgCallback
说明:

参数 cb 需要跟 TIMAddRecvNewMsgCallback 传入的 cb 一致,否则删除回调失败。

TIMSetMsgReadedReceiptCallback

设置消息已读回执回调。

原型

TIM_DECL void TIMSetMsgReadedReceiptCallback(TIMMsgReadedReceiptCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMMsgReadedReceiptCallback 消息已读回执回调,请参考 TIMMsgReadedReceiptCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

发送方发送消息,接收方调用接口 TIMMsgReportReaded 上报该消息已读,发送方 IM SDK 会通过此接口设置的回调抛出。

TIMSetMsgRevokeCallback

设置接收的消息被撤回回调。

原型

TIM_DECL void TIMSetMsgRevokeCallback(TIMMsgRevokeCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMMsgRevokeCallback 消息撤回通知回调,请参考 TIMMsgRevokeCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

发送方发送消息,接收方收到消息。此时发送方调用接口 TIMMsgRevoke 撤回该消息,接收方的 IM SDK 会通过此接口设置的回调抛出。

TIMSetMsgElemUploadProgressCallback

设置消息内元素相关文件上传进度回调。

原型

TIM_DECL void TIMSetMsgElemUploadProgressCallback(TIMMsgElemUploadProgressCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMMsgElemUploadProgressCallback 文件上传进度回调,请参考 TIMMsgElemUploadProgressCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

设置消息元素上传进度回调。当消息内包含图片、声音、文件、视频元素时,IM SDK 会上传这些文件,并触发此接口设置的回调,用户可以根据回调感知上传的进度。

TIMSetGroupTipsEventCallback

设置群组系统消息回调。

原型

TIM_DECL void TIMSetGroupTipsEventCallback(TIMGroupTipsEventCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMGroupTipsEventCallback 群消息回调,请参考 TIMGroupTipsEventCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

群组系统消息事件包括加入群、退出群、踢出群、设置管理员、取消管理员、群资料变更、群成员资料变更。此消息是针对所有群组成员下发的。

TIMSetConvEventCallback

设置会话事件回调。

原型

TIM_DECL void TIMSetConvEventCallback(TIMConvEventCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMConvEventCallback 会话事件回调,请参考 TIMConvEventCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

  • 会话事件包括:
    • 会话新增。
    • 会话删除。
    • 会话更新。
  • 任何产生一个新会话的操作都会触发会话新增事件,例如调用接口 TIMConvCreate 创建会话,接收到未知会话的第一条消息等。任何已有会话变化的操作都会触发会话更新事件,例如收到会话新消息,消息撤回,已读上报等。调用接口 TIMConvDelete 删除会话成功时会触发会话删除事件。

TIMSetNetworkStatusListenerCallback

设置网络连接状态监听回调。

原型

TIM_DECL void TIMSetNetworkStatusListenerCallback(TIMNetworkStatusListenerCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMNetworkStatusListenerCallback 连接事件回调,请参考 TIMNetworkStatusListenerCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

  • 当调用接口 TIMInit 时,IM SDK 会去连接云后台。此接口设置的回调用于监听网络连接的状态。
  • 网络连接状态包含四个:正在连接、连接失败、连接成功、已连接。这里的网络事件不表示用户本地网络状态,仅指明 IM SDK 是否与即时通信 IM 云 Server 连接状态。
  • 可选设置,如果要用户感知是否已经连接服务器,需要设置此回调,用于通知调用者跟通讯后台链接的连接和断开事件,另外,如果断开网络,等网络恢复后会自动重连,自动拉取消息通知用户,用户无需关心网络状态,仅作通知之用。
  • 只要用户处于登录状态,IM SDK 内部会进行断网重连,用户无需关心。

TIMSetKickedOfflineCallback

设置被踢下线通知回调。

原型

TIM_DECL void TIMSetKickedOfflineCallback(TIMKickedOfflineCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMKickedOfflineCallback 踢下线回调,请参考 TIMKickedOfflineCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

  • 用户如果在其他终端登录,会被踢下线,这时会收到用户被踢下线的通知,出现这种情况常规的做法是提示用户进行操作(退出,或者再次把对方踢下线)。
  • 用户如果在离线状态下被踢,下次登录将会失败,可以给用户一个非常强的提醒(登录错误码 ERR_IMSDK_KICKED_BY_OTHERS:6208),开发者也可以选择忽略这次错误,再次登录即可。
  • 用户在线情况下的互踢情况:
    用户在设备1登录,保持在线状态下,该用户又在设备2登录,这时用户会在设备1上强制下线,收到TIMKickedOfflineCallback回调。用户在设备1上收到回调后,提示用户,可继续调用 login 上线,强制设备2下线。这里是在线情况下互踢过程。
  • 用户离线状态互踢:
    用户在设备1登录,没有进行 logout 情况下进程退出。该用户在设备2登录,此时由于用户不在线,无法感知此事件,为了显式提醒用户,避免无感知的互踢,用户在设备1重新登录时,会返回(ERR_IMSDK_KICKED_BY_OTHERS:6208)错误码,表明之前被踢,是否需要把对方踢下线。如果需要,则再次调用 login 强制上线,设备2的登录的实例将会收到TIMKickedOfflineCallback回调。

TIMSetUserSigExpiredCallback

设置票据过期回调。

原型

TIM_DECL void TIMSetUserSigExpiredCallback(TIMUserSigExpiredCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMUserSigExpiredCallback 票据过期回调,请参考 TIMUserSigExpiredCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

用户票据,可能会存在过期的情况,如果用户票据过期,此接口设置的回调会调用。TIMLogin 也将会返回70001错误码。开发者可根据错误码或者票据过期回调进行票据更换。

TIMSetOnAddFriendCallback

设置添加好友的回调。

原型

TIM_DECL void TIMSetOnAddFriendCallback(TIMOnAddFriendCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMOnAddFriendCallback 添加好友回调,请参考 TIMOnAddFriendCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

此回调为了多终端同步。例如 A 设备、B 设备都登录了同一帐号的 IM SDK,A 设备添加了好友,B 设备 IM SDK 会收到添加好友的推送,IM SDK 通过此回调告知开发者。

TIMSetOnDeleteFriendCallback

设置删除好友的回调。

原型

TIM_DECL void TIMSetOnDeleteFriendCallback(TIMOnDeleteFriendCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMOnDeleteFriendCallback 删除好友回调,请参考 TIMOnDeleteFriendCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

此回调为了多终端同步。例如 A 设备、B 设备都登录了同一帐号的 IM SDK,A 设备删除了好友,B 设备 IM SDK 会收到删除好友的推送,IM SDK 通过此回调告知开发者。

TIMSetUpdateFriendProfileCallback

设置更新好友资料的回调。

原型

TIM_DECL void TIMSetUpdateFriendProfileCallback(TIMUpdateFriendProfileCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMUpdateFriendProfileCallback 更新好友资料回调,请参考 TIMUpdateFriendProfileCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

此回调为了多终端同步。例如 A 设备、B 设备都登录了同一帐号的 IM SDK,A 设备更新了好友资料,B 设备 IM SDK 会收到更更新好友资料的推送,IM SDK 通过此回调告知开发者。

TIMSetFriendAddRequestCallback

设置好友添加请求的回调。

原型

TIM_DECL void TIMSetFriendAddRequestCallback(TIMFriendAddRequestCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMFriendAddRequestCallback 好友添加请求回调,请参考 TIMFriendAddRequestCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

当前登入用户设置添加好友需要确认时,如果有用户请求加当前登入用户为好友,会收到好友添加请求的回调,IM SDK 通过此回调告知开发者。如果多终端登入同一帐号,每个终端都会收到这个回调。

TIMSetLogCallback

设置日志回调。

原型

TIM_DECL void TIMSetLogCallback(TIMLogCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMLogCallback 日志回调,请参考 TIMLogCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

设置日志监听的回调之后,IM SDK 内部的日志会回传到此接口设置的回调。开发者可以通过接口 TIMSetConfig 配置哪些日志级别的日志回传到回调函数。

TIMSetMsgUpdateCallback

设置消息在云端被修改后回传回来的消息更新通知回调。

原型

TIM_DECL void TIMSetMsgUpdateCallback(TIMMsgUpdateCallback cb, const void* user_data);

参数

参数 类型 含义
cb TIMMsgUpdateCallback 消息更新回调,请参考 TIMMsgUpdateCallback
user_data const void* 用户自定义数据,IM SDK 只负责传回给回调函数 cb,不做任何处理
说明:

  • 当您发送的消息在服务端被修改后,IM SDK 会通过该回调通知给您。
  • 您可以在您自己的服务器上拦截所有即时通信 IM 消息 发单聊消息之前回调
  • 设置成功之后,即时通信 IM 服务器会将您的用户发送的每条消息都同步地通知给您的业务服务器。
  • 您的业务服务器可以对该条消息进行修改(例如过滤敏感词),如果您的服务器对消息进行了修改,IM SDK 就会通过此回调通知您。