• Core 接口类提供了 SDK 初始化登录以及配置的功能。
  • ChatRoomService 接口类提供了对应的聊天室管理的调用接口。
  • MessageService 接口类提供了消息发送的通道,可以用于发送对应的公屏、信令广播和信令单播。
  • ChannelService 接口类提供了对应的消息传输通道能力调用接口。

Core

HMRGetState

获取SDK当前状态,详见 HMRState

返回

SDK当前状态。


HMRInit

初始化 Hummer 实例并初始化。

注意:

  • 目前 SDK 只支持一个 Hummer 实例,每个应用程序仅应创建一个 Hummer 对象。
  • Hummer 类的所有接口函数,如无特殊说明,都是异步调用,对接口的调用建议在同一个线程进行。
  • 对于所有操作的回调,如无特殊说明,返回的HMRResult为 0 代表成功,否则为操作失败,具体的错误码及含义参见 HMRCode 中的错误码定义。
HMR_API void HMRInit(uint64_t appId);
参数
参数描述
appId用于标识具体业务,详见 获取AppID

HMROpen

登录SDK。

HMR_API void HMROpen(uint64_t uid, const char *region, const char *token, HMRCompletion completion);
参数
参数描述
uid用户id, uid 不能为0
region需要连接服务器所处的环境参数,详情咨询相关SDK开发人员
token用于服务初始化时所需的用户凭证
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRClose

登出SDK。

HMR_API void HMRClose();

HMRRefreshToken

刷新用户凭证。

注意:

该接口已被弃用,请改用 HMRRefreshTokenWithCompletion

HMR_API void HMRRefreshToken(const char *token);
参数
参数描述
token待刷新用户凭证

HMRRefreshTokenWithCompletion

刷新用户凭证。

注意:

该接口已被弃用,请改用 HMRRefreshToken1

HMR_API void HMRRefreshTokenWithCompletion(const char *token, HMRCompletion completion);
参数
参数描述
token待刷新用户凭证
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRRefreshToken1

HMR_API void HMRRefreshToken1(const char *token, HMRCompletion completion);

刷新Token。

Token具有时效性,当收到 onTokenWillExpire(Token即将过期)或 onPreviousTokenExpiredCallback(Token过期)回调时,客户端需重新调用该API刷新Token;否则Token过期后,SDK与服务器会断开连接,导致服务中断。

参数
参数描述
token新的Token
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRSetLogger

设置 SDK 日志输出托管回调

注意:

  • 业务可以通过该方法进行设置对应的 Logger,那么 SDK 则会将日志的输出和打印交给业务来处理。
  • 业务则需要保证日志的上报等,用于后期出现问题时可以查到具体的信息。
HMR_API void HMRSetLogger(HMRLogFunction logFunction);
参数
参数描述
logFunctionSDK 日志输出回调,详见 HMRLogFunction

HMRAddStateListener

添加 SDK 状态变更监听器。

HMR_API void HMRAddStateListener(HMRStateListener *listener);
参数
参数描述
listener待添加监听器,详见 HMRStateListener

HMRRemoveStateListener

移除 SDK 状态变更监听器。

HMR_API void HMRRemoveStateListener(HMRStateListener *listener);
参数
参数描述
listener待移除监听器,详见 HMRStateListener

HMRAddHummerListener

HMR_API void HMRAddHummerListener(HMRHummerListener *listener);

添加 HMRHummerListener 监听器用于监听 Core 类接口的事件、获取相关数据。例如Token即将过期、SDK与服务器连接状态等。。

参数
参数描述
listener待添加监听器,详见 HMRHummerListener

HMRRemoveHummerListener

HMR_API void HMRRemoveHummerListener(HMRStateListener *listener);

移除 HMRHummerListener 监听器。

参数
参数描述
listener待移除监听器,详见 HMRHummerListener

HMRGetVersion

获取 SDK 版本信息。

HMR_API const char *HMRGetVersion();
返回

SDK版本信息。


HMRGetConnectionState

获取Hummer当前连接状态

HMR_API HMRConnectionState HMRGetConnectionState();
返回

Hummer当前连接状态


HMRSetLoggerFilePath

HMR_API bool HMRSetLoggerFilePath(const char* path);

自定义日志存储路径。

参数
参数描述
path日志存储路径(存在且可写),默认路径为: 当前exe所在目录
返回
  • true: 成功。
  • false:失败。

注意事项

  • 请勿设置为无操作权限的目录。
  • 建议在SDK初始化后调用该API,为保证日志完整性,不建议频繁调用该方法。

HMRSetLogLevel

HMR_API bool HMRSetLogLevel(HMRLogLevel level);

设置SDK日志输出优先级别,默认为 Verbose。

日志级别分为6个级别,由低到高为:Verbose < Debug < Info < Warning < Error < Release。SDK会输出当前以及高于当前设置的日志级别的日志。例如,设置的日志级别为 Info,则优先级高于或等于 Info 级别(如:Warning、Error、Release)的日志将被输出,小于该级别的将不会被输出。

参数
参数描述
logLevel日志等级,详见 HMRLoggerLevel
返回
  • true: 成功。
  • false:失败。

HMRSetLogCallback

HMR_API bool HMRSetLogCallback(HMRLogWithLevel callback);

注册日志输出回调来输出日志。

业务可以通过该方法进行设置对应的callback,那么 SDK 则会将日志的输出和打印交给业务来处理,业务需要保证日志的上报等,用于后期出现问题时可以查到具体的信息。

参数
参数描述
callbackSDK 日志输出回调,日志级别详见 HMRLoggerLevel

HMRUploadLogsManually

HMR_API bool HMRUploadLogsManually(const char* remark);

上传日志至服务治理平台的日志管理后台。

参数
参数描述
remark上报时的备注信息
返回
  • true: 成功。
  • false:失败。

HMRCreateTextMessage

创建文本消息

HMR_API HMRBaseMessage* HMRCreateTextMessage(const char* content,uint32_t size,HMRKvArray* extra)
参数
参数描述
content消息内容
size消息长度
extra消息扩展字段
返回

通用消息结构,详见 HMRBaseMessage |


HMRReleaseTextMessage

创建文本消息

HMR_API void HMRReleaseTextMessage(HMRBaseMessage* msg)
参数
参数描述
HMRBaseMessage通用消息结构,详见 HMRBaseMessage

HMRSendP2PMessage

HMR_API void HMRSendP2PMessage(uint64_t userId,HMRBaseMessage *message,HMRP2PMessageOptions *options,HMRCompletion completion);

发送点对点消息(P2P)。

用户登录 Hummer 系统后,可通过该接口给其他用户发送点对点文本消息,发送后会触发 onP2PMessageReceived 消息回调,消息目标用户可通过监听 onP2PMessageReceived 接收该文本消息。

参数
参数描述
userId该条消息的接收者
message消息对象,只支持 HMRTextMessage,且需使用该类提供的消息构造接口直接构建消息对象
options发送消息所需要的配置信息,目前可配置该消息是否支持离线功能,业务可通过设置参数 optionsisOffline 字段 ,控制该次发送的消息是否开启离线功能,该功能默认关闭。详见 HMRP2PMessageOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码
注意事项
  • 登录 Hummer 系统即可调用该接口,操作者和接收者均无任何是否在通道内/房间内限制。
  • 单个用户调用频率限制:180次/3秒
  • 每个接收端最多保存 200 条离线消息,最长保存七天。当保存的离线消息超出限制时,最新消息将覆盖最老消息。

HMRFetchUserOnlineStatus

查询用户在线状态。

HMR_API void HMRFetchUserOnlineStatus(HMRIdArray *uids,HMRCompletion completion);
参数
参数描述
infos用户信息列表,最大个数为32,详见 HMRIdArray
completion结果回调(HMRCompletion):0-成功,并返回用户在线状态(HMRUserOnlineStatus)、其他-失败,详见 错误码

HMRAddPeerListener

添加用户监听器

HMR_API void HMRAddPeerListener(HMRPeerListener* listener);
参数
参数描述
listener需要添加的监听器,详见 HMRPeerListener

HMRRemovePeerListener

添加用户监听器

HMR_API void HMRRemovePeerListener(HMRPeerListener* listener);
参数
参数描述
listener需要移除的监听器,详见 HMRPeerListener

ChatRoomService

HMRCreateChatRoom

创建聊天室

注意:

  • 由于聊天室模块的所需的聊天室必须要通过创建才能使用,故需要对应的创建聊天室接口。
  • 在创建聊天室完成后,服务器会返回对应的聊天室标识,用于后续在使用聊天室时的标识。
  • 同时在创建聊天室时需要提供对应的聊天室信息,如名称、描述、公告以及扩展信息等。
  • 默认容量上限:
    一个AppId创建聊天室个数:100w个
    单个聊天室对应人数:10w个
  • 单个用户调用频率限制:10次/5s
HMR_API void HMRCreateChatRoom(HMRCompletion completion);
参数
参数描述
completion结果回调(HMRCompletion):0-成功,并返回对应的 聊天室标识、其他-失败,详见 错误码

HMRCreateChatRoomWithInfo

创建聊天室,并配置聊天室信息。

注意:

  • 由于聊天室模块的所需的聊天室必须要通过创建才能使用,故需要对应的创建聊天室接口。
  • 在创建聊天室完成后,服务器会返回对应的聊天室标识,用于后续在使用聊天室时的标识。
HMR_API void HMRCreateChatRoomWithInfo(HMRKvArray *info, HMRCompletion completion);
参数
参数描述
info聊天室信息对象,包含名称、描述、公告以及扩展信息,详见 HMRChatRoomBasicInfoType
completion结果回调(HMRCompletion):0-成功,并返回对应的 聊天室标识、其他-失败,详见 错误码

HMRJoinChatRoom

加入聊天室。

注意:

  • 对应聊天室操作都需要进入聊天室之后才能正常的操作,如发公屏、发信令以及接受信令都要进入聊天室之后才能正常处理。
  • 加入聊天室会涉及多端互踢的逻辑,相关互踢逻辑请咨询后台配置。
  • 单个用户调用频率限制:10次/5s。
HMR_API void HMRJoinChatRoom(uint64_t roomId, HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRJoinChatRoomWithMultiCheck

加入聊天室,并检测当前用户是否重复登录。

注意:

  • 由于目前聊天室只支持单端以及多端进入聊天室,对应具体的配置可以找后台的相关同学进行对应的配置。对于单端进入聊天室则第二个进入聊天室的用户会将第一个进入聊天室的用户踢出聊天室。在加入聊天室之后,希望离开聊天室可以调用 HMRLeaveChatRoom 离开聊天室的接口。
  • 并且需要操作都需要进入聊天室之后才能正常的操作,如发公屏、发信令以及接受信令都要进入聊天室之后才能正常处理。
  • 单个用户调用频率限制:10次/5s。
HMR_API void HMRJoinChatRoomWithMultiCheck(uint64_t roomId, bool isCheckMultiJoin, HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
isCheckMultiJoin是否检测重复登陆
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRJoinChatRoomWithConfigs

加入聊天室,并指定扩展信息。

注意:

  • 由于目前聊天室只支持单端以及多端进入聊天室,对应具体的配置可以找后台的相关同学进行对应的配置。对于单端进入聊天室则第二个进入聊天室的用户会将第一个进入聊天室的用户踢出聊天室。在加入聊天室之后,希望离开聊天室可以调用 HMRLeaveChatRoom 离开聊天室的接口。
  • 并且需要操作都需要进入聊天室之后才能正常的操作,如发公屏、发信令以及接受信令都要进入聊天室之后才能正常处理。
  • 单个用户调用频率限制:10次/5s
HMR_API void HMRJoinChatRoomWithConfigs(uint64_t roomId, const HMRKvItem *joinProps, int numerOfProperty, HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
joinProps扩展字段,用于业务扩展,SDK 只负责透传,详见 HMRKvItem
numerOfProperty扩展字段数量
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRLeaveChatRoom

退出聊天室。

注意:

在进入聊天室后处理完所有需要处理的逻辑后,可以通过离开聊天室来结束跟聊天室之间的交互,同时也会停止监听聊天室的公屏、信令消息和对应的回调通知。

HMR_API void HMRLeaveChatRoom(uint64_t roomId, HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRChatRoomFetchBasicInfo

获取聊天室基本属性信息。

注意:

该方法已弃用,请改用 HMRChatRoomFetchRoomInfo

HMR_API void HMRChatRoomFetchBasicInfo(uint64_t roomId, HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
completion结果回调(HMRCompletion):0-成功,并返回聊天室属性(HMRKvArray),其他-失败,详见 错误码

HMRFetchHistoryMessage

获取聊天室公屏历史消息。

注意:

  • 历史消息存储时间限制一个月。
  • 无进入聊天室限制,无权限角色限制,所有用户均可调用该接口。
  • 单次查询结果最大支持100条,最少1条。
  • 单个用户调用频率限制:10次/5s。
HMR_API void HMRFetchHistoryMessage(uint64_t roomId,HMRMessageFetchingParams params,HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
params消息拉取条件,详见 HMRMessageFetchingParams
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRChatRoomChangeBasicInfo

变更聊天室基本属性信息.

注意:

  • 该方法已弃用,请改用 HMRChatRoomAddOrUpdateRoomInfo
  • 可以修改一个或多个属性,只需要在参数中指定需要修改的聊天室信息的键值对即可。
  • 需要 房主 或者 管理员 的角色。
  • 单个用户调用频率限制:10次/5s
HMR_API void HMRChatRoomChangeBasicInfo(uint64_t roomId, HMRKvArray *info, HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
info修改的属性值,详见 HMRKvArray,其中key值参见枚举详见:HMRChatRoomBasicInfoType
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRSetRoomExtraAttributes

设置房间扩展属性。

HMR_API void HMRSetRoomExtraAttributes(uint32_t roomId,HMRKvArray *attributes,HMRRoomAttributeOptions *options,HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
attributes扩展属性,由 key-value组成,详见 HMRKvArray
key:单个属性 Key 最大32字节,不能为空
value:单个属性value最大8KB,可以为空
options预留参数,详见 HMRRoomAttributeOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码
注意事项
  • 单个房间最多支持32个扩展属性。
  • OwnerAdmin 用户有权限设置房间扩展属性,且操作者需要在该房间内。

HMRUpdateRoomExtraAttributes

更新房间扩展属性.

HMR_API void HMRUpdateRoomExtraAttributes(uint32_t roomId,HMRKvArray *attributes,HMRRoomAttributeOptions *options,HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
attributes修改的属性值,详见 HMRKvArray
options预留参数 HMRRoomAttributeOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

注意事项

  • 每个属性 Key 最大32字节
  • 每个属性值最大8KB
  • 每个聊天室最多有32条属性
  • 设置聊天室属性的时候 Key 不能为空(返回错误),Value 可以为空
  • OwnerAdmin 权限的用户才可以执行设置房间扩展属性操作
  • 操作者需要在该聊天室聊天室内才可以执行设置房间扩展属性操作

HMRDeleteRoomExtraAttributes

删除指定房间扩展属性。

HMR_API void HMRDeleteRoomExtraAttributes(uint32_t roomId,HMRStrArray *keys,HMRRoomAttributeOptions *options,HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
keys修改的属性数组,要删除的属性 key 集合,不能为空,单个 Key 最大为32字节
详见 HMRStrArray
options预留参数,详见 HMRRoomAttributeOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码
注意事项
  • OwnerAdmin 用户有权限删除房间扩展属性,且操作者需要在该房间内。
  • 单个用户调用频率限制:10次/5s。

HMRClearRoomExtraAttributes

清空房间扩展属性。

不需要传入任何key值或属性值,该接口会直接清空目标房聊天室的所有属性,调用该接口会触发 onRoomExtraAttributesCleared 回调。

HMR_API void HMRClearRoomExtraAttributes(uint32_t roomId,HMRRoomAttributeOptions *options,HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
options预留参数,详见 HMRRoomAttributeOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRFetchRoomExtraAttributes

查询指定房间的扩展属性。

所有用户无论是否已加入房间均有权限执行该操作。

HMR_API void HMRFetchRoomExtraAttributes(uint32_t roomId,HMRStrArray *keys,HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
keys属性数组,详见 HMRStrArray
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRKickUser

把聊天室内用户踢出聊天室。

HMR_API void HMRKickUser(uint32_t roomId,uint64_t userId, HMRKvArray *extraInfo,HMRKickUserOptions options,HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
userId被踢出聊天室的成员
extraInfo踢人的额外信息。目前支持的Key主要是两个,一个是 {@link EKickInfo#Reason}, 用于携带踢人原因的 Key, 其 Key 对应的 Value 只需填写对应的踢人原因的字符串即可;另一个是 {@link EKickInfo#Time} 用于携带限制时长的 Key, 其 Key 对应的 Value 只需要填写踢人限制时长的秒数转换成字符串即可, 这些字段都是透传字段,服务器不做处理
options预留参数,详见 HMRKickUserOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码
注意事项
  • 执行踢人操作时,操作者和被操作者均需要在指定聊天室内。
  • 聊天室管理员 admin 角色只能踢普通用户,不能踢 admin 和 owner。
  • 聊天室创建者 owner 可以踢聊天室管理员 admin、普通用户。
  • 单次调用只能指定一个用户,不支持批量操作。
  • 单个用户调用频率限制:10次/5s。

HMRUpdateRoomBasicAttributes

HMR_API void HMRUpdateRoomBasicAttributes(uint32_t roomId,HMRKvArray *attributes,RoomBasicAttributesOptions *options,HMRCompletion completion);

更新房间基础属性。

调用该接口成功后会触发通知 onRoomBasicAttributesUpdated

注意事项

  • 操作者需要在该聊天室房间内才可以执行更新房间基础属性操作
  • owneradmin 权限的用户才可以执行更新房间基础属性操作
  • 单个用户调用频率限制:10次/5s
  • value 最大长度:8k
参数
参数描述
roomId聊天室标识符
attributes属性值,key-value 键值对,详见 HMRKvArray
key 值仅支持: Name-名称、Description-描述、Bulletin-公告
value 最大长度为8k
options预留参数,详见 RoomBasicAttributesOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码
注意事项
  • 操作者需要在该聊天室房间内。
  • 仅 owner 和 admin 权限的用户才可以执行该操作。
  • 单个用户调用频率限制:10次/5s。

HMRFetchRoomBasicAttributes

查询指定房间的指定属性。

HMR_API void HMRFetchRoomBasicAttributes(uint32_t roomId, HMRStrArray* keyArr, HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
keys属性数组,详见 HMRStrArray
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRSetUserRole

HMR_API void HMRSetUserRole(uint32_t roomId,uint64_t userId,const char* role,uint32_t size, HMRRoleOptions options,HMRCompletion completion);

设置聊天室用户角色。

角色属性在整个聊天室生命周期内固定存在,即使用户退出了该聊天室,该用户的角色属性仍然存在,除非该聊天室销毁。调用成功后会触发设置聊天室用户角色通知 onUserRoleSet

参数
参数描述
roomId聊天室标识符
userId需要被设置角色的用户
role具体角色
size字符长度
options可选参数,预留,详见 HMRRoleOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码
注意事项
  • 单个聊天室内,最多可以指定 10 个 Admin 用户。
  • 只有 Owner 才可以指定 Admin,且 Owner 指定 Admin 时,可以不在聊天室内,被操作者必须在聊天室内。
  • Owner 不能设置自己为 Admin。
  • 一个用户只能被指定为一个角色,不能同时存在多个角色。
  • 目前只能设置 Admin。

HMRDeleteUserRole

HMR_API void HMRDeleteUserRole(uint32_t roomId,uint64_t userId,HMRRoleOptions options,HMRCompletion completion);

删除用户角色。

调用成功会触发聊天室用户角色被删通知 onUserRoleDeleted

参数
参数描述
roomId聊天室标识符
userId需要被删除角色的用户
options可选参数,预留,详见 HMRRoleOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码
注意事项
  • 只有 Owner 有权限删除指定用户的角色。
  • 操作者和被操作者都可以不在聊天室内。

HMRFetchUserRole

查询用户角色。

HMR_API void HMRFetchUserRole(uint32_t roomId,uint64_t userId,HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
userId需要查询的用户
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRFetchRoleUserList

查询角色用户列表。

HMR_API void HMRFetchRoleUserList(uint32_t roomId,const char *role,uint32_t size,HMRCompletion completion);
参数
参数描述
roomId聊天室标识符
role具体角色
size字符长度
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码
注意事项
  • 单个用户调用频率限制:10次/5s
  • 返回的只是创建者 owner、管理员 admin 角色列表,不支持返回普通用户列表。

HMRChatRoomFetchMembers

获取聊天室在线用户列表

注意:

  • 由于一些场景下,一个聊天室的内的用户可能有十几万,故聊天室 SDK 提供了对应的按需分页获取用户的结果。同时也会按照一定的默认规则来进行排序对应的用户列表。
  • 获取用户列表的接口,可以在不进入聊天室时也可以获取。
  • 单个用户调用频率限制:10次/5s。
HMR_API void HMRChatRoomFetchMembers(uint64_t roomId, int32_t num, int32_t offset, HMRCompletion completion);
参数
参数描述
chatRoom聊天室标识符
offset第几页 (第一页从0开始)
num设置每页的返回成员数(建议不超过200)
completion结果回调(HMRCompletion):0-成功,并返回在线用户列表(HMRIdArray)、其他-失败,详见 错误码

HMRChatRoomSetUserInfo

设置自己的用户信息

注意:

  • 容量上限:
    设置用户属性,最大支持属性个数:32个
    单个用户属性的最大值:8k
  • 单个用户调用频率限制:10次/5s
HMR_API void HMRChatRoomSetUserInfo(uint64_t roomId, HMRKvArray *infos, HMRCompletion completion);
参数
参数描述
roomId成员所在的聊天室
infos用户信息,详见 HMRIdArray,最大个数为32个
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRChatRoomFetchOnLineUserInfoList

获取聊天室已设置用户信息的在线用户列表

注意:

获取的人员列表最多返回100个,超过100个的随机返回100个

HMR_API void HMRChatRoomFetchOnLineUserInfoList(uint64_t roomId, HMRCompletion completion);
参数
参数描述
roomId待查询聊天室
completion结果回调(HMRCompletion):0-成功,并返回用户信息列表(HMRChatRoomOnLineUserInfoList)、其他-失败

HMRAddChatRoomListener

添加聊天室回调监听器。

HMR_API void HMRAddChatRoomListener(HMRChatRoomListener *listener);
参数
参数描述
listener监听器对象,详见 HMRChatRoomListener

HMRRemoveChatRoomListener

移除聊天室回调监听器。

HMR_API void HMRRemoveChatRoomListener(HMRChatRoomListener *listener);
参数
参数描述
listener监听器对象,详见 HMRChatRoomListener

HMRAddMemberListener

添加聊天室用户回调监听器。

HMR_API void HMRAddMemberListener(HMRChatRoomMemberListener *listener);
参数
参数描述
listener监听器对象. 详见 HMRChatRoomMemberListener

HMRRemoveMemberListener

移除聊天室用户的回调监听器。

HMR_API void HMRRemoveMemberListener(HMRChatRoomMemberListener *listener);
参数
参数描述
listener监听器对象,详见 HMRChatRoomMemberListener

HMRGetChatRoomRegion

获取聊天室服务地区代号。

HMR_API const char* HMRGetChatRoomRegion(HMRChatRoomMemberListener *listener);

HMRSetChatRoomRegion

设置聊天室服务地区代号(支持的地区及代号请咨询开发人员),默认为中国"cn"。

HMR_API void HMRSetChatRoomRegion(const char *region);
参数
参数描述
region聊天室区域:
中国 - cn
印尼 - ap_southeast
美国 - us巴西 - sa_east
印度 - ap_south

HMRMakeChatRoomIdentity

构造一个聊天室Identity对象。

HMR_API HMRIdentity HMRMakeChatRoomIdentity(uint64_t roomId);
参数
参数描述
roomId聊天室标识
返回

id 为 roomId的聊天室Identity对象


HMRExtractChatRoomId

从聊天室Identity对象中抽取聊天室ID。

HMR_API HMRCode HMRExtractChatRoomId(HMRIdentity identity, uint64_t *roomId);
参数
参数描述
identity聊天室标识,详见 HMRIdentity
roomId解析的聊天室ID
返回

操作结果,详见 HMRCode


HMRIsChatRoom

判断一个identity对象是否表示一个聊天室。

HMR_API bool HMRIsChatRoom(HMRIdentity identity);
参数
参数描述
identity聊天室标识,详见 HMRIdentity
返回

是否为聊天室标识


HMRMakeChatRoomUser

构造一个聊天室用户Identity对象。

HMR_API HMRIdentity HMRMakeChatRoomUser(uint64_t roomId, uint64_t userId);
参数
参数描述
roomId聊天室标识
userId用户标识
返回

id 为 userId的聊天室用户Identity对象


HMRExtractChatRoomUser

从聊天室用户Identity对象中抽取用户ID。

HMR_API HMRCode HMRExtractChatRoomUser(HMRIdentity identity, uint64_t *roomId, uint64_t *userId);
参数
参数描述
identity聊天室标识,详见 HMRIdentity
roomId解析的聊天室ID
userId解析的用户id
返回

操作结果,详见 HMRCode


HMRChatRoomFetchRoomInfo

获取聊天室所有属性。

HMR_API HMRCode HMRChatRoomFetchRoomInfo(uint64_t roomId, HMRCompletion completion);

说明

该接口从 v1.8.0 开始已废弃删除,有相关需求请改用 HMRFetchRoomExtraAttributes

参数

参数描述
roomId聊天室ID
completion完成后的回调,业务可以根据对应判断结果来做不同的业务处理,详见 HMRCompletion

HMRChatRoomAddOrUpdateRoomInfo

新增或更新聊天室的属性。

HMR_API HMRCode HMRChatRoomAddOrUpdateRoomInfo(uint64_t roomId, HMRKvArray *info, HMRCompletion completion);

说明

该接口从 v1.8.0 开始已废弃删除,有相关需求请改用 HMRSetRoomExtraAttributesHMRUpdateRoomExtraAttributes

参数

参数描述
roomId聊天室ID
info聊天室属性键值对,详见 HMRKvArray
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRChatRoomDeleteUserInfo

删除自己的用户属性。

HMR_API HMRCode HMRChatRoomDeleteUserInfo(uint64_t roomId, HMRStrArray *keys, HMRCompletion completion);
参数
参数描述
roomId聊天室id
keys待删除用户属性key数组,详见 HMRKvArray
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRChatRoomBatchFetchUserInfos

批量获取聊天室指定用户属性列表。

HMR_API HMRCode HMRChatRoomBatchFetchUserInfos(uint64_t roomId, HMRStrArray *keys, HMRCompletion completion);
参数
参数描述
roomId聊天室id
keys待删除用户属性key数组,详见 HMRKvArray
completion完成后的回调,业务可以根据对应判断结果来做不同的业务处理,详见 HMRCompletion

HMRChatRoomAddOrUpdateUserInfo

新增或更新聊天室用户的属性。

HMR_API HMRCode HMRChatRoomAddOrUpdateUserInfo(uint64_t roomId, HMRKvArray *info, HMRCompletion completion);
参数
参数描述
roomId聊天室ID
info用户信息,详见 HMRKvArray
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

HMRIsChatRoomUser

判断一个identity对象是否表示一个聊天室用户。

HMR_API bool HMRIsChatRoomUser(HMRIdentity identity);
参数
参数描述
identity聊天室标识,详见 HMRIdentity
返回

是否为聊天室用户标识。


MessageService

HMRSendMessasge

发送消息接口:支持发送公屏消息(只支持文本消息)、单播、广播

说明:

  • 业务可以通过自己构造消息体,并且填写对应的消息内容将该消息发送出去。
  • 该接口也可以在消息发送失败的情况下进行重发消息。
  • 单个用户调用频率限制:
    发送公屏消息:10次/5s
    发送自定义单播消息:50次/5s
    发送自定义广播消息:50次/5s
  • 单条消息最大长度:
    单播:2k
    广播:2k
    公屏:1200字节
HMR_API void HMRSendMessasge(HMRMessage *message, HMRCompletion completion);
参数
参数描述
message消息实例,详见 HMRMessage
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

注意事项

completion 回调只处理了最终完成回调,消息发送过程中可能会有多个阶段/状态。可以通过监听HMRMessageListener 来得到相应的回调。

HMRAddMessageListener

添加一个消息收发监听器。

HMR_API void HMRAddMessageListener(HMRMessageListener *listener);
参数
参数描述
listener欲增加的listener对象,如果此前该listener已经添加,则addListener相当于空操作,详见 HMRMessageListener

HMRRemoveMessageListener

移除一个消息收发监听器

HMR_API void HMRRemoveMessageListener(HMRMessageListener *listener);
参数
参数描述
listener欲移除的listener对象,如果该listener不存在,则什么都不会发生,详见 HMRMessageListener

HMRCreateMessage

创建一条消息

HMR_API HMRMessage *HMRCreateMessage(HMRIdentity receiver, HMRMessageContent content, HMRMessageExtra extra);
参数
参数描述
receiver消息接收者,详见 HMRIdentity
content消息内容,详见 HMRMessageContent
extra消息扩展内容,详见 HMRMessageExtra
返回

消息实体,详见 HMRMessage

HMRRetainMessage

持有一条消息的引用

HMR_API void HMRRetainMessage(HMRMessage *message);
参数
参数描述
message待持有消息实例,详见 HMRMessage

HMRReleaseMessage

释放一条消息的引用。

HMR_API void HMRReleaseMessage(HMRMessage *message);
参数
参数描述
message待持有消息实例,详见 HMRMessage

HMRMakeMessageExtra

构造消息扩展内容

HMR_API HMRMessageExtra HMRMakeMessageExtra(const char *extra, int32_t length);
参数
参数描述
extra扩展内容
length扩展内容长度
返回

消息扩展内容实例,详见 HMRMessageExtra

HMRIsMessageFailed

判断消息是否为失败状态。

HMR_API bool HMRIsMessageFailed(HMRMessage *message);
参数
参数描述
message消息实例,详见 HMRMessage
返回
  • false 失败
  • true 成功

HMRGetConversationTarget

根据消息对象获取其对应的会话目标。

HMR_API HMRIdentity HMRGetConversationTarget(HMRMessage *message);
参数
参数描述
message消息实例,详见 HMRMessage
返回

目标实例,详见 HMRIdentity


ChannelService

HMRAddChannelListener

添加通道监听器

HMR_API void HMRAddChannelListener(HMRChannelListener* listener);
参数
参数描述
listener需要添加的监听函数,详见 HMRChannelListener

HMRRemoveChannelListener

移除通道监听器

HMR_API void HMRRemoveChannelListener(HMRChannelListener* listener);
参数
参数描述
listener需要添加的监听器,详见 HMRChannelListener

HMRSendP2CMessage

HMR_API void HMRSendP2CMessage(HMRChannelId channelId,HMRBaseMessage* message,HMRP2CMessageOptions* options, HMRCompletion completion);

在通道( Channel )内发送广播消息。

在已加入的 Channel 内发送广播消息,发送后会触发 onP2CMessageReceived 消息回调,通道内用户均能通过监听 onP2CMessageReceived 接收到该消息。

参数
参数描述
channelId通道ID,由 [A,Z][a,z][0,9]-_ 组成,最大长度为 64 字节,详见 HMRChannelId
message需要发送的消息对象,只支持 HMRTextMessage,且注意需使用该类提供的消息构造接口直接构建消息对象
options发送消息所需要的配置信息,目前可配置该消息是否支持离线功能,详见 HMRP2CMEssageOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码
注意事项
  • 仅已加入通道的用户,才能往该通道发送广播消息。
  • 离开通道后,将不能继续接收通道内的广播消息。

HMRJoinChannel

HMR_API void HMRJoinChannel(HMRChannelId channelId,HMRChannelJoinOptions* options,HMRCompletion completion);

加入通道。

调用该接口加入指定的底层消息通道,并由 Hummer系统后台直接创建。

参数
参数描述
channelId通道ID,由 [A,Z][a,z][0,9]-_ 组成,最大长度为 64 字节,详见 HMRChannelId
options发送消息所需要的配置信息,详见 HMRChannelJoinOptions
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码
注意事项
  • 单个用户同时最多支持加入20 个通道。
  • 对应 Channel 操作都需要进入 Channel 之后才能正常的操作,如发送通道内广播消息以及接收通道内广播都要进入Channel 之后才能正常处理。

HMRLeaveChannel

退出消息通道 (Channel)。

离开通道后,将不能继续接收通道内的广播消息。

HMR_API void HMRLeaveChannel(HMRChannelId channelId,HMRCompletion completion);
参数
参数描述
channelId通道ID,由 [A,Z][a,z][0,9]-_ 组成,最大长度为 64 字节,详见 HMRChannelId
completion结果回调(HMRCompletion):0-成功,其他-失败,详见 错误码

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

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

反馈

TOP