typedef void(*HMRStateCallback)(void *context, bool isInitial, HMRState oldState, HMRState newState);
Hummer SDK 状态变更回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
isInitial | 请求HMRAddStateListener时会立即触发一次回调,该次回调的isInitial值为true,后续收到实际变更时,其值为false |
oldState | 变更前状态,详见 HMRState |
newState | 当前状态,详见 HMRState |
typedef void(*HMRTokenInvalidCallback)(void *context, HMRTokenInvalidCode code, const char *desc, int descsize);
废弃
注意:
该方法已弃用,请改用 onPreviousTokenExpiredCallback。
鉴权 Token 无效通知
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
code | 无效类型,详见 HMRTokenInvalidCode |
desc | 无效原因 |
descsize | 无效原因字符串长度 |
typedef void(*HMRPreviousTokenExpired)(void *context);
鉴权 Token 无效通知
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
void (*onP2PMessageReceived)(void* context, uint32_t userId, HMRBaseMessage* message);
通道广播消息通知。
当通道内收到广播消息时,会收到该通知回调,由 HMRSendP2PMessage 触发。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
userId | 发送消息的用户 |
message | 通用消息结构,详见 HMRBaseMessage |
typedef void(*HMRConnectionStateChanged)(void *context, HMRConnectionState fromState, HMRConnectionState toState, const char* reason,int reasonsize);
SDK与服务器连接状态变更通知。
当因网络断开、Token过期等导致SDK和服务器的连接状态变化均会触发该回调,告知用户变更前状态、当前状态和状态变化原因。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
fromState | 旧的连接状态,详见 HMRConnectionState |
toState | 新的连接状态,详见 HMRConnectionState |
reason | 变更理由 |
reasonsize | 变更理由 (reason)的长度 |
typedef void(*HMRTokenWillExpire)(void *context);
Token 即将过期通知。
当Token还有约30s过期时,会触发该回调。收到该通知后,请调用 HMRRefreshToken1 刷新Token。
注意:
该方法请与最新的HMROpen配合使用。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
typedef void(*HMRForceoutOffline)(void* context,HMRCode code,const char* reason);
账号被踢的通知,当业务收到该通知后,当前账户已被踢下线,业务可自定义账号被踢后的处理逻辑,例如弹框提示、跳出主界面等。
注意:
该通知触发策略,根据服务后台互踢策略配置而决定。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
code | 错误码 |
reason | 被踢原因 |
void(*onBasicInfoChanged)(void *context, uint32_t chatroom, uint64_t operatorUser, const HMRKvArray *info);
废弃
注意:
该方法已弃用,请改用 onRoomInfoAddedOrUpdated。
当聊天室基础信息发生变化时的回调
注意:
该方法通过调用 HMRChatRoomChangeBasicInfo 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
operatorUser | 修改聊天室信息的管理员 |
info | 变化的键值对,详见 HMRKvArray ,其中key值参见枚举详见 HMRChatRoomBasicInfoType |
void(*onRoomInfoAddedOrUpdated)(void *context, uint32_t chatroom, uint64_t operatorUser, const HMRKvArray *info);
聊天室属性变更的回调通知
废弃
注意:
该方法已弃用,请改用 onRoomExtraAttributesUpdated。
注意:
该方法通过调用 HMRChatRoomChangeBasicInfo 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
operatorUser | 修改聊天室信息的管理员 |
info | 变化的键值对,详见 HMRKvArray,其中key值参见枚举详见:HMRChatRoomBasicInfoType |
void (*onRoomExtraAttributesSet)(void *context,uint32_t roomId, uint64_t userId,const HMRKvArray *attributes, uint64_t updateTimestamp);
房间扩展属性被设置通知。
该回调通知由 HMRSetRoomExtraAttributes 触发,房间内用户均会收到该回调通知。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
roomId | 聊天室的标识 |
userId | 修改聊天室信息的管理员 |
attributes | 变化的键值对,详见 HMRKvArray,其中key值参见枚举详见:HMRChatRoomBasicInfoType |
updateTimestamp | 最后操作的时间戳 |
void (*onRoomExtraAttributesUpdated)(void *context,uint32_t roomId, uint64_t userId,const HMRKvArray *attributes, uint64_t updateTimestamp);
房间扩展属性被更新通知。
该回调通知由 HMRUpdateRoomExtraAttributes 触发,房间内用户均会收到该回调通知。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
roomId | 聊天室的标识 |
userId | 修改聊天室信息的管理员 |
attributes | 变化的键值对,详见 HMRKvArray,其中key值参见枚举详见:HMRChatRoomBasicInfoType |
updateTimestamp | 最后操作的时间戳 |
void (*onRoomExtraAttributesDeleted)(void *context,uint32_t roomId, uint64_t userId,const HMRKvArray *attributes, uint64_t updateTimestamp);
房间扩展属性被删除通知。
该回调通知由 HMRDeleteRoomExtraAttributes 触发,房间内用户均会收到该回调通知。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
roomId | 聊天室的标识 |
userId | 修改聊天室信息的管理员 |
attributes | 变化的键值对,详见 HMRKvArray,其中key值参见枚举详见:HMRChatRoomBasicInfoType |
updateTimestamp | 最后操作的时间戳 |
void (*onRoomExtraAttributesCleared)(void *context,uint32_t roomId, uint64_t userId,const HMRKvArray *attributes, uint64_t updateTimestamp);
房间扩展属性被删除通知。
该回调通知由 HMRClearRoomExtraAttributes 触发,房间内用户均会收到该回调通知。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
roomId | 聊天室的标识 |
userId | 修改聊天室信息的管理员 |
attributes | 变化的键值对,详见 HMRKvArray,其中key值参见枚举详见:HMRChatRoomBasicInfoType |
updateTimestamp | 最后操作的时间戳,单位:毫秒 |
void (*onRoomBasicAttributesUpdated)(void* context, uint32_t roomId, uint64_t userId,const HMRKvArray* attributes, uint64_t updateTimestamp);
房间基础属性设置通知。
该回调通知由 HMRUpdateRoomBasicAttributes 触发,房间内用户均会收到该回调通知。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
roomId | 聊天室的标识 |
userId | 修改聊天室信息的管理员 |
attributes | 变化的键值对,详见 HMRKvArray,其中key值参见枚举详见:HMRChatRoomBasicInfoType |
updateTimestamp | 最后操作的时间戳,单位:毫秒 |
void(*onMemberJoined)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);
当有成员进入聊天室时的回调。
注意:
该方法通过调用 HMRJoinChatRoom 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
users | 进入聊天室的成员 |
usersize | 成员数量 |
void(*onMemberLeaved)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);
当有成员离开聊天室时的回调。
注意:
- 该方法通过调用 HMRLeaveChatRoom 发生回调。
- 对于断线超时的用户,会触发离开聊天室的动作,并收到该成员离开聊天室的回调
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
users | 离开聊天室的成员 |
usersize | 成员数量 |
void(*onMemberCountChanged)(void *context, uint32_t chatroom, uint32_t count);
当聊天室成员数量发生变化时的回调。
注意:
该方法通过调用 HMRJoinChatRoom 以及 HMRLeaveChatRoom 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
count | 变化后的数量 |
void(*onMemberKicked)(void *context, uint32_t chatroom, uint64_t admin, const uint64_t *member, uint16_t membersize, const char *reason);
当聊天室成员被踢出聊天室时的回调。
废弃
注意:
该方法已弃用,请改用 onUserKicked。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
admin | 执行踢出操作的管理员 |
member | 被踢出聊天室的成员 |
membersize | 成员数量 |
reason | 被踢出聊天室的原因 |
void(*onUserInfoSet)(void *context, uint32_t chatroom, uint64_t user, const HMRKvArray *infos);
当聊天室成员信息被设置时的回调。
注意:
该方法通过调用 HMRChatRoomSetUserInfo 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
user | 信息变更的成员 |
infos | 设置后的用户信息,详见 HMRKvArray |
void(*onMemberOffline)(void *context, uint32_t chatroom, const uint64_t *users, uint16_t usersize);
断网超时离线回调。
注意:
该方法会在断网超时离线发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
user | 信息变更的成员 |
uint16_t | 离线用户数 |
void(*onUserInfoAddedOrUpdated)(void *context, uint32_t chatroom, const uint64_t *users, const HMRKvArray *infos);
用户属性变更的回调通知。
注意:
该方法通过调用 HMRChatRoomAddOrUpdateUserInfo 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
user | 信息变更的成员 |
infos | 设置后的用户信息,详见 HMRKvArray |
void(*onUserInfoAddedOrUpdated)(void *context, uint32_t chatroom, const uint64_t *users, const HMRKvArray *infos);
成员属性删除通知。
注意:
该方法通过调用 HMRChatRoomDeleteUserInfo 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
user | 信息变更的成员 |
infos | 设置后的用户信息,详见 HMRKvArray |
void(*onUserInfoAddedOrUpdated)(void *context, uint32_t chatroom, const uint64_t *users, const HMRKvArray *infos);
成员属性删除通知。
该方法通过调用 HMRChatRoomDeleteUserInfo 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
user | 信息变更的成员 |
infos | 设置后的用户信息,详见 HMRKvArray |
void (*onUserKicked)(void* context, uint32_t chatRoom, uint64_t operdatorId,HMRKickOutType type, const HMRKvArray *infos);
用户被踢出聊天室的通知。
该方法通过调用 HMRKickUser 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
chatroom | 聊天室的标识 |
operdatorId | 执行踢出操作的管理员 |
type | 被踢类型,详见 HMRKickOutType |
infos | 设置后的用户信息,详见 HMRKvArray |
void (*onUserRoleSet)(void* context,uint32_t roomId,const char* role,uint32_t size,uint64_t userId,uint64_t operatorId);
设置用户角色通知。
该方法通过调用 HMRSetUserRole 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
roomId | 聊天室的标识 |
role | 设置的角色 |
size | 字符长度 |
userId | 被赋予角色的用户 |
operatorId | 操作者 |
void (*onUserRoleDeleted)(void* context,uint32_t roomId,const char* role,uint32_t size,uint64_t userId,uint64_t operatorId);
删除用户角色通知。
该方法通过调用 HMRDeleteUserRole 发生回调。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
roomId | 聊天室的标识 |
role | 设置的角色 |
size | 字符长度 |
userId | 被赋予角色的用户 |
operatorId | 操作者 |
typedef void (*HMRMessageCallback)(void *context, HMRMessage *message);
消息发送前回调
该回调发生于用户调用 HMRSendMessasge 方法进行消息发送前。
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
message | 待发送消息,详见 HMRMessage |
typedef void (*HMRMessageCallback)(void *context, HMRMessage *message);
消息发送后回调
该回调发生于用户调用 HMRSendMessasge 方法进行消息发送完成(无论成功或失败)后
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
message | 发送的消息,详见 HMRMessage |
typedef void (*HMRMessageCallback)(void *context, HMRMessage *message);
收到消息回调
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
message | 收到的消息,详见 HMRMessage |
void (*onP2CMessageReceived)(void* context, HMRChannelId channelId, uint64_t peerId, HMRBaseMessage* message);
收到通道消息通知
参数 | 描述 |
---|---|
context | 请求上下文对象,透传自回调执行时,从listener取出的context |
channelId | 通道ID |
peerId | 发送消息的用户 |
message | 通用消息结构,详见 HMRBaseMessage |