腾讯云即时通信IMReact Native_AI解决方案_同尘科技
功能描述
从 1.0.25 版本开始,IMSDK 提供了群计数器的功能,每个群都可以设置一定数量的计数器。与 群自定义属性不同 ,群计数器主要用来存储整数类型的数据,您可以使用群计数器来存储一些群相关的附加信息,例如直播群的累计观看人数、观看人次、主播被点赞的次数、观众累计送给主播的礼物数等。群计数器相关的方法均在核心类 V2TIMGroupManager
中。说明除了话题外,群计数器支持所有的群类型;群计数器功能仅旗舰版本支持。关于群计数器,需要注意的是:1. 单个群内最大支持 20 组群计数器,也即单个群内 key 的个数不超过 20 个;2. 单个群计数器的 key 不超过 128 个字节,value 必须为整数类型(最大支持 64 位有符号整型);3. setGroupCounters
、increaseGroupCounter
、decreaseGroupCounter
接口合并计算,SDK 限制为单个登录用户最多 5 秒调用 20 次,超过限制后接口回调 8516 错误码;4. getGroupCounters
接口单独计算,SDK 限制为单个登录用户最多 5 秒 20 次调用,超过限制后接口回调 8516 错误码。
设置群计数器
您可以调用接口 setGroupCounters设置多组群计数器。计数器设置成功后会触发 onGroupCounterChanged
回调,onGroupCounterChanged 的使用参见下文的 群计数器变更通知。说明如果您即将设置的计数器的 key 存在,则直接更新计数器的 value 值;如果不存在,则直接添加 key-value。如果多个用户同时设置同一个计数器时,计数器最终的值会相互覆盖,推荐由群主发起设置操作。Typescript
import { TencentImSDKPlugin } from 'react-native-tim-js';
const SetGroupCountersresponse = await TencentImSDKPlugin.v2TIMManager .getGroupManager() .setGroupCounters( groupID,// 群组id counters// 计数器 );if (SetGroupCountersresponse.code === 0) { // 设置成功 SetGroupCountersresponse.data; // 设置后的计数器}
递增群计数器
您可以调用递增接口 increaseGroupCounter对群计数器作累加操作,操作成功后会触发 onGroupCounterChanged
回调。onGroupCounterChanged 的使用参见下文的 群计数器变更通知。说明接口参数中的 value 为变化量,调用接口后会在当前值的基础上累加传入的变化量;如果您即将设置的计数器的 key 存在,则直接在当前值的基础上根据传入的 value 作递增操作;反之,添加 key,并在默认值为 0 的基础上根据传入的 value 作递增操作。Typescript
import { TencentImSDKPlugin } from 'react-native-tim-js';
const IncreaseGroupCounterresponse = await TencentImSDKPlugin.v2TIMManager .getGroupManager() .increaseGroupCounter( groupID,// 群组id key,// 计数器key parseInt(value, 10)// 递增数 );if (IncreaseGroupCounterresponse.code === 0) { // 递减成功 IncreaseGroupCounterresponse.data; // 递增后的计数器}
递减群计数器
您可以调用递减接口 decreaseGroupCounter对群计数器作累减操作,操作成功后会触发 onGroupCounterChanged
回调,onGroupCounterChanged 的使用参见下文的 群计数器变更通知。说明接口参数中的 value 为递减的变化量,调用接口后会在当前值的基础上减去传入的变化量;如果您即将设置的计数器的 key 存在,则直接在当前值的基础上根据传入的 value 作递减操作;反之,添加 key,并在默认值为 0 的基础上根据传入的 value 作递减操作。示例:假设当前的计数器 key1 的值是 8,调用 decreaseGroupCounter
接口传入的递减变化量 value 为 2 后,最终 key1 的值变为 6。Typescript
import { TencentImSDKPlugin } from 'react-native-tim-js';
const DecreaseGroupCounterresponse = await TencentImSDKPlugin.v2TIMManager .getGroupManager() .decreaseGroupCounter( groupID,// 群组id key,// 计数器key parseInt(value, 10)// 递减数 );if (DecreaseGroupCounterresponse.code === 0) { // 递减成功 DecreaseGroupCounterresponse.data; // 递减后的计数器}
获取群计数器
您可以调用接口 getGroupCounters,并通过传入一组指定的 key 来获取对应的群计数器信息。接口会返回所有的与 key 相匹配的 key-value 键值对。说明 如果传入的 key 列表为空,则返回所有的群计数器。Typescript
import { TencentImSDKPlugin } from 'react-native-tim-js';
const GetGroupCountersresponse = await TencentImSDKPlugin.v2TIMManager .getGroupManager() .getGroupCounters( groupID,//群组id key ? [key] : []// 计数器keys );if (GetGroupCountersresponse.code === 0) { // 获取成功 GetGroupCountersresponse.data; // 获取的计数器}
群计数器变更通知
当您调用 setGroupCounters
、increaseGroupCounter
、decreaseGroupCounter
接口修改群计数器时,会触发 onGroupCounterChanged
回调,并返回变化后的 value 值。说明 在使用上述回调之前,您需要调用接口 addGroupListener
添加群监听器。示例代码如下:Typescript
import { TencentImSDKPlugin } from 'react-native-tim-js';
const groupListener = { onGroupCounterChanged: (groupID: string, key: string, newValue: number) => { //群计数器变更通知 //groupID 群 ID //key 计数器key //newValue 计数器新的值 }};
TencentImSDKPlugin.v2TIMManager.addGroupListener(groupListener);
交流与反馈
点此进入IM社群,享有专业工程师的支持,解决您的难题
对即时通讯IM解决方案有疑惑?想了解解决方案收费? 联系解决方案专家
腾讯云限时活动1折起,即将结束: 马上收藏
同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠
阿里云解决方案也看看?: 点击对比阿里云的解决方案
暂无评论,你要说点什么吗?