腾讯云即时通信IM消息相关问题_AI解决方案_同尘科技

即时通信 IM 2年前 (2023-10-11) 浏览 79

同时集成了即时通信 IM 和 TPNS,存在大量的厂商类冲突,这种问题怎么解决?

目前即时通信 IM 已使用 移动推送 TPNS 提供的厂商 jar 包,您可参见文档 IM 离线推送(Android)替换相关依赖包即可解决该问题。

消息没有收到或消息丢失如何处理?

单聊消息确认消息是否发送成功。确认接收方是否登录成功。确认发送消息的指定会话是否与接收方一致。群组消息确认消息是否发送成功。确认接收方是否登录成功。确认接收方是否是群成员。不管是 C2C 消息还是群消息,在以上步骤无法确认问题的时候,需要继续确认以下情况:1. 确认是否注册了消息监听器。2. 确认发送方发送消息的时候,是否把elem添加到消息中了(发消息的时候需要检查addElement的返回值)。3. 如您使用 Android,则需要确认是否注册了多个消息监听器,并且在消息监听器中返回了true

收不到离线推送怎么处理?

APNs
参考 离线推送(iOS) 说明文档进行以下确认:确认是否正确上传证书到腾讯云控制台。确认在登录成功后,是否成功上传 token 到腾讯云。确认在上报 token 时,是否上报了正确的证书 ID。确认是否正确上报了切换前后台事件。确认消息是否只有 TIMCustomElem,且其中的 desc属性是空的。MsgRandom 等去重标记设为一样,导致被去重无法推送。如果是群消息,是否设置了消息不提醒选项。Android
参考 离线推送 说明文档进行以下确认:确认是否正确上传了推送证书。确认是否成功上报 token。如果不是第三方离线推送(华为,小米,魅族),确认一下 QALService 进程是否存活,不存活的情况下确实会收不到离线推送,需要依赖系统的自启动权限。存在多进程的情况下,是否只在主进程进行了 IM SDK 的初始化,如果不是,需要修改为只在主进程初始化。如果是第三方离线推送,例如小米、华为,魅族等,可以先通过对应的第三方控制台直接推送消息,确认手机是否可以收到,如果收不到可能存在两种原因:
1)用户集成第三方离线推送有问题,请按照文档操作。
2)手机兼容问题,该手机本身不能很好的兼容该离线推送,例如部分华为手机无法接收到华为的离线推送。如果是 OPPO 离线推送,请确认在即时通信控制台的 Android 推送证书处填入的是 MasterSecret 而不是 AppSecret。不管是 APNs 推送还是 Android 上的离线推送,在以上步骤无法确认问题时,需要继续确认以下情况:1. 确认接收方 ID 是否与消息要推送的用户 ID 一致。2. 确认是否设置了离线推送监听器(Android)。3. 确认是否设置了免打扰,iOS 参考 设置自定义推送提示音,Android 参考 设置全局离线推送配置。4. 确认消息是否是通过 sendOnlineMessage 接口发送的在线消息,或者通过 REST API 推送的时候设置了 MsgLifeTime0。5. 确认消息是否设置了不进行离线推送的标识,iOS 参考 自定义离线消息属性,Android 参考 设置单条消息的离线推送配置。6. 若还是无法定位,可提供相关信息给技术人员进行排查。

红包消息怎么处理?

红包消息与 @ 消息类似,可以通过 TIMCustomElem 来实现。需要应用在 UI 上做相应的特殊处理,例如检查到当前消息为红包消息后,消息展示为红包的样式。
另外,红包消息作为重要消息,最好在发送消息的时候将其设置为高优先级消息,以最大程度保证消息在触达频率限制的情况下仍可以送达(目前群内消息默认限制频率40条/s, 单聊消息默认限制频率为5条/s)。关于消息优先级相关的内容可以参考 消息优先级。注意红包消息的支付部分功能,需要应用自行集成相应的支付 SDK,IM SDK 暂不提供这部分功能。一个简单的红包消息的构建过程如下(Android):

// 构建一条新的消息TIMMessage msg = new TIMMessage();try{    // 填充自定义的消息协议    JSONObject redPacket= new JSONObject();    redPacket.put("type", "RED_PACKET");    redPacket.put("amount", 2018);    redPacket.put("msg", "Happy new year!");
// 根据自己定义的协议构建自定义消息元素 TIMCustomElem customElem = new TIMCustomElem(); customElem.setDesc("red packet"); customElem.setData(redPacket.toString().getBytes("utf-8"); if(msg.addElement(customElem) != 0){ Log.e(TAG, "add custom elem failed"); return; }}catch(Exception e){ Log.e(TAG, "build custom elem failed"); return;}
// 设置消息优先级为高优先级msg.setPriority(TIMMessagePriority.High);

即时通信 IM 消息存储时长是多久?

单聊消息及非直播群消息具备历史消息存储能力,您可以登录 即时通信 IM 控制台 修改相关配置。不同套餐包默认配置如下:体验版:7天,不支持延长专业版:7天,支持延长旗舰版:30天,支持延长延长历史消息存储时长是付费增值服务,具体计费说明请参见 增值服务资费。

为什么发送者已经被拉入黑名单但消息依旧显示发送成功?

即时通信 IM 在控制台的 黑名单检查 管理中提供发送消息后展示发送成功功能,当启用该功能时被拉黑用户侧发消息后仍展示发送成功 (实际对方不会收到消息) 。停用本设置项,则被拉黑用户侧发消息后会提示失败,SDK 会收到 错误码 20007 。具体配置请参照文档 黑名单检查。

如何通过 COS 将图片地址变成可下载的域名格式?

上传需要用户自己处理。如果使用存储服务私有读,需要 URL 签名确保有下载权限(预签名下载)。

即时通信 IM 的消息唯一标识的规则是怎样的?

即时通信 IM 客户端单聊/群聊消息,Web 端单聊/群聊消息及服务端单聊消息唯一标识分别对应 msg_id,msgID 及 msgKey。各端不同类型消息唯一标识的规则不同,具体规则如下:客户端单聊/群聊消息 msg_id 的组成是:tinyid-clientTime-random。Web 端单聊/群聊消息 msgID 的组成是(v2.17.0及以下):会话 id-msgSeq-random-1(我发送的消息) / 0(非我发送的消息)。Web 端单聊/群聊消息 msgID 的组成是(v2.18.0及以上):tinyid-clientTime-random。服务端单聊消息 msgKey 的组成是:clientSeq_random_serverTime。服务端群聊消息通过群 id + msgSeq 来进行唯一标识。

直播群、社群是否支持 @ 消息?

直播群(AVChatRoom)不支持发送 @ 消息,社群(Community)支持 @ 单个用户,不支持 @ALL。

消息编辑 & 消息扩展 & 消息回应有什么区别?

消息功能 是否需要旗舰版 存储方式 拉取方式 并发设置是否会冲突
消息编辑 不需要 编辑信息直接存在消息体内,共用消息存储,单条消息最大 12K 编辑信息直接通过消息体返回,无需单独拉取 会有冲突
消息扩展 需要 扩展信息独立存储,单条消息最大支持设置 300 个扩展,单个扩展最大支持 1K 扩展信息需要单独拉取,仅支持逐条消息拉取 同一个扩展设置会冲突,不同的扩展设置不会冲突
消息回应 需要 回应信息独立存储,单条消息最大支持设置 10 个回应,单个回应最大支持 100 个用户 回应信息需要单独拉取,支持多条消息批量拉取 不会冲突

消息编辑:

您可以调用 modifyMessage(Android / iOS & Mac / Windows) 接口对原始消息内容做编辑。优势:简单易用。劣势:如果多个用户同时编辑一条消息,可能会导致编辑冲突。如果编辑后的消息内容过大,可能会导致消息大小超限(单条消息最大支持 12K)。总结:消息编辑适合单个用户操作且存储需求较小的场景,比如订单消息场景,可以通过编辑消息的 cloudCustomData 字段来存储和修改订单的状态。

消息扩展:

您可以调用 setMessageExtensions (Android / iOS & Mac / Windows) 接口为一条消息添加扩展信息。优势:单条消息可以设置多个扩展,不同的扩展同时设置不会冲突。扩展信息独立存储,不占用消息体大小,单条消息最大支持设置 300 个扩展,单个扩展最大支持 1K。劣势:同一个扩展同时设置,也会有冲突问题。扩展信息需要调用 getMessageExtensions (Android / iOS & Mac / Windows) 接口单独拉取。扩展信息不支持多条消息批量拉取。总结:消息扩展适合多个用户操作且存储量较大的场景,比如问卷调查场景,每个扩展信息都是 {userID : 问卷调查内容} 的集合,不同的用户填写问卷调查不会冲突。

消息回应:

您可以调用 addMessageReaction (Android / iOS & Mac / Windows) 接口为一条消息添加回应信息。优势:单条消息可以添加多个回应,回应添加不冲突。回应信息独立存储,不占用消息体大小,单条消息最大支持添加 10 个回应,单个回应最大支持 100 个用户。回应信息支持多条消息批量拉取。支持单独拉取使用同一个回应的用户列表。劣势:回应信息需要调用 getMessageReactions (Android / iOS & Mac/ Windows) 接口单独拉取。回应信息只支持设置回应 ID,其他信息均不支持设置,SDK 会自动统计使用同一回应 ID 的用户列表。总结:消息回应适合需要统计用户列表的场景,比如表情回应场景,用户添加表情回应只需传入表情 ID,SDK 会自动统计使用同一表情 ID 的用户列表。

对即时通讯IM解决方案有疑惑?想了解解决方案收费? 联系解决方案专家

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心,购买腾讯云享受折上折,更有现金返利:同意关联,立享优惠

阿里云解决方案也看看?: 点击对比阿里云的解决方案

- 0人点赞 -

发表点评 (0条)

not found

暂无评论,你要说点什么吗?