Core

HMRStateListener::onStateCallback

typedef void(*HMRStateCallback)(void *context, bool isInitial, HMRState oldState, HMRState newState);

Hummer SDK 状态变更回调

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
isInitial请求HMRAddStateListener时会立即触发一次回调,该次回调的isInitial值为true,后续收到实际变更时,其值为false
oldState变更前状态,详见 HMRState
newState当前状态

HMRStateListener::onTokenInvalidCallback

typedef void(*HMRTokenInvalidCallback)(void *context, HMRTokenInvalidCode code, const char *desc, int descsize);

废弃

注意:

该方法已弃用,请改用 onPreviousTokenExpiredCallback

鉴权 Token 无效通知

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
code无效类型,详见 HMRTokenInvalidCode
desc无效原因
descsize无效原因字符串长度

HMRStateListener::onPreviousTokenExpiredCallback

typedef void(*HMRPreviousTokenExpired)(void *context);

鉴权 Token 无效通知

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context

ChatRoomService

HMRChatRoomListener::onBasicInfoChanged

void(*onBasicInfoChanged)(void *context, uint32_t chatroom, uint64_t operatorUser, const HMRKvArray *info);

废弃

注意:

该方法已弃用,请改用 onRoomInfoAddedOrUpdated

当聊天室基础信息发生变化时的回调

注意:

该方法通过调用 HMRChatRoomChangeBasicInfo 发生回调。

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
chatroom聊天室的标识
operatorUser修改聊天室信息的管理员
info变化的键值对,其中key值参见枚举详见:HMRChatRoomBasicInfoType

HMRChatRoomListener::onRoomInfoAddedOrUpdated

void(*onRoomInfoAddedOrUpdated)(void *context, uint32_t chatroom, uint64_t operatorUser, const HMRKvArray *info);

聊天室属性变更的回调通知

注意:

该方法通过调用 HMRChatRoomChangeBasicInfo 发生回调。

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
chatroom聊天室的标识
operatorUser修改聊天室信息的管理员
info变化的键值对,其中key值参见枚举详见:HMRChatRoomBasicInfoType

HMRChatRoomMemberListener

HMRChatRoomMemberListener::onMemberJoined

void(*onMemberJoined)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);

当有成员进入聊天室时的回调

注意:

该方法通过调用 HMRJoinChatRoom 发生回调。

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
chatroom聊天室的标识
users进入聊天室的成员
usersize成员数量

HMRChatRoomMemberListener::onMemberLeaved

void(*onMemberLeaved)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);

当有成员离开聊天室时的回调

注意:

  • 该方法通过调用 HMRLeaveChatRoom 发生回调。
  • 对于断线超时的用户,会触发离开聊天室的动作,并收到该成员离开聊天室的回调
参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
chatroom聊天室的标识
users离开聊天室的成员
usersize成员数量

HMRChatRoomMemberListener::onMemberCountChanged

void(*onMemberCountChanged)(void *context, uint32_t chatroom, uint32_t count);

当聊天室成员数量发生变化时的回调

注意:

该方法通过调用 HMRJoinChatRoom 以及 HMRLeaveChatRoom 发生回调。

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
chatroom聊天室的标识
count变化后的数量

HMRChatRoomMemberListener::onMemberKicked

void(*onMemberKicked)(void *context, uint32_t chatroom, uint64_t admin, const uint64_t *member, uint16_t membersize, const char *reason);

当聊天室成员被踢出聊天室时的回调

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
chatroom聊天室的标识
admin执行踢出操作的管理员
member被踢出聊天室的成员
membersize成员数量
reason被踢出聊天室的原因

HMRChatRoomMemberListener::onUserInfoSet

void(*onUserInfoSet)(void *context, uint32_t chatroom, uint64_t user, const HMRKvArray *infos);

当聊天室成员信息被设置时的回调

注意:

该方法通过调用 HMRChatRoomSetUserInfo 发生回调。

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
chatroom聊天室的标识
user信息变更的成员
infos设置后的用户信息

HMRChatRoomMemberListener::onMemberOffline

void(*onMemberOffline)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);

断网超时离线回调

注意:

该方法会在断网超时离线发生回调。

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
chatroom聊天室的标识
user信息变更的成员
uint16_t离线用户数

HMRChatRoomMemberListener::onUserInfoAddedOrUpdated

void(*onUserInfoAddedOrUpdated)(void *context, uint32_t chatroom, const uint64_t *users, const HMRKvArray *infos);

用户属性变更的回调通知

注意:

该方法通过调用 HMRChatRoomAddOrUpdateUserInfo 发生回调。

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
chatroom聊天室的标识
user信息变更的成员
infos设置后的用户信息

HMRChatRoomMemberListener::onUserInfoDeleted

void(*onUserInfoAddedOrUpdated)(void *context, uint32_t chatroom, const uint64_t *users, const HMRKvArray *infos);

成员属性删除通知

注意:

该方法通过调用 HMRChatRoomDeleteUserInfo 发生回调。

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
chatroom聊天室的标识
user信息变更的成员
infos设置后的用户信息

MessageService

HMRMessageListener::beforeSending

typedef void (*HMRMessageCallback)(void *context, HMRMessage *message);

消息发送前回调

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
message待发送消息,详见HMRMessage

HMRMessageListener::afterSending

typedef void (*HMRMessageCallback)(void *context, HMRMessage *message);

消息发送后回调

  • 该回调发生于用户调用HMRSendMessasge方法进行消息发送完成(无论成功或失败)后
参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
message发送的消息,详见HMRMessage

HMRMessageListener::onReceive

typedef void (*HMRMessageCallback)(void *context, HMRMessage *message);

收到消息回调

参数
参数描述
context请求上下文对象,透传自回调执行时,从listener取出的context
message收到的消息,详见HMRMessage

枚举值 & 结构体

HMRStateListener

struct HMRStateListener {
	// 异步请求的上下文对象指针,一般为发起异步操作的对象指针
	void *context;

	// 状态变更回调函数指针,在Hummer内部工作状态发生变化时,会通过该方法进行回调
	// 如果是在主线程添加的listener,则该回调也会被调度到主线程,否则会在Hummer工作线程调度执行
	HMRStateCallback onStateCallback;

	// Token失效回调函数指针
	// 如果是在主线程添加的listener,则该回调也会被调度到主线程,否则会在Hummer工作线程调度执行
	HMRTokenInvalidCallback onTokenInvalidCallback;

	// Token失效回调函数指针
	HMRPreviousTokenExpired onPreviousTokenExpiredCallback;
	// Hummer内部辅助数据,业务方请勿修改或使用
	void *preserved;
};

SDK 状态监听信息

参数
参数描述
context步请求的上下文对象指针
onStateCallback状态变更回调函数指针,详见onStateCallback
onTokenInvalidCallbackToken失效回调函数指针,详见onTokenInvalidCallback
preserved预留字段

HMRTokenInvalidCode

enum HMRTokenInvalidCode

Token 无效类型

枚举值含义
HMRTokenInvalidCode_Expired(1)过期

HMRChatRoomListener

struct HMRChatRoomListener {
	// 异步请求的上下文对象指针,一般为发起异步操作的对象指针
	void *context;

	/**
	* 聊天室基础信息变更的回调通知
	*
	* @param context		context为listener中携带的上下文对象指针透传
	* @param chatRoom		聊天室
	* @param operatorUser	信息修改人员
	* @param info			已变更信息的键值对
	*/
	void(*onBasicInfoChanged)(void *context, uint32_t chatroom, uint64_t operatorUser, const HMRKvArray *info);

	// Hummer 内部使用的保留字段,业务方应禁止访问、修改该数据
	void *reserved;
};

聊天室事件监听器

参数
参数描述
context步请求的上下文对象指针
onBasicInfoChanged聊天室基础信息变更的回调通知,详见onBasicInfoChanged
reserved预留字段

HMRChatRoomMemberListener

struct HMRChatRoomMemberListener {
	// 异步请求的上下文对象指针,一般为发起异步操作的对象指针
	void *context;

	/**
	* 用户被踢出聊天室的回调通知
	*
	* @param context context为listener中携带的上下文对象指针透传
	* @param chatRoom 聊天室
	* @param admin    管理员
	* @param member   被踢用户
	* @param membersize   被踢用户数
	* @param reason   原因
	*/
	void(*onMemberKicked)(void *context, uint32_t chatroom, uint64_t admin, const uint64_t *member, uint16_t membersize, const char *reason);

	/**
	* 用户加入/退出聊天室的回调通知
	*
	* @param context context为listener中携带的上下文对象指针透传
	* @param chatRoom 聊天室
	* @param users    加入/退出用户
	* @param usersize 加入/退出用户数
	*/
	void(*onMemberJoined)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);
	void(*onMemberLeaved)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);

	/**
	* 用户信息被设置的回调通知
	*
	* @param context context为listener中携带的上下文对象指针透传
	* @param chatRoom 聊天室
	* @param user 信息变更的成员
	* @param infos 设置后的用户信息
	*/
	void(*onUserInfoSet)(void *context, uint32_t chatroom, uint64_t user, const HMRKvArray *infos);

	/**
	* 用户数量变更的回调通知
	*
	* @param context context为listener中携带的上下文对象指针透传
	* @param chatRoom 聊天室
	* @param count    变更后的用户数量
	*/
	void(*onMemberCountChanged)(void *context, uint32_t chatroom, uint32_t count);

	// Hummer 内部使用的保留字段,业务方应禁止访问、修改该数据
	void *reserved;
};

聊天室成员事件监听器

参数
参数描述
context步请求的上下文对象指针
onMemberKicked用户被踢出聊天室的回调通知,详见onMemberKicked
onMemberJoined用户加入聊天室的回调通知,详见onMemberJoined
onMemberLeaved用户离开聊天室的回调通知,详见onMemberLeaved
onUserInfoSet用户信息被设置的回调通知,详见onUserInfoSet
onMemberCountChanged用户数量变更的回调通知,详见onMemberCountChanged
reserved预留字段

HMRMessageListener

struct HMRMessageListener {
	// 异步请求的上下文对象指针,一般为发起异步操作的对象指针
	void *context;

	// target 对象用于进行消息过滤。当使用EmptyIdentity时,该监听器会接收所有消息。否则仅会
	// 接收该 target 匹配的消息
	HMRIdentity target;

	// 消息发送前的回调,收到该回调意味着消息已经经过了合法性校验,并将立即尝试将其发送到接收方
	HMRMessageCallback beforeSending;

	// 消息发送后的回调,不论成功或失败,收到该回调意味着消息已经走完了发送流程。发送的成功或失败
	// 可以通过消息对象的state字段来判断
	HMRMessageCallback afterSending;

	// 消息接收回调,当Hummer收到属于当前用户的消息时,会通过该回调进行处理
	HMRMessageCallback onReceive;

	// Hummer 内部使用的保留字段,业务方应禁止访问、修改该数据
	void *reserved;
};

消息状态监听器

参数
参数描述
context步请求的上下文对象指针
target消息过滤的对象标识
beforeSending消息发送前回调,详见beforeSending
afterSending消息发送后的回调,详见afterSending
onReceive消息接收回调,详见onReceive
reserved预留字段

文档是否有解决您的问题?

有帮助 没帮助
提交成功,非常感谢您的反馈!

反馈

TOP