更新时间: 2021-03-08

# 什么是 targetId ?

说明: targetId 为目标 id,senderUserId 为发送方 id

举例: user1 为发送方,user2 为接收方,对应 targetId 值如下:

user1(发送方):

会话类型 targetId senderUserId
单聊 user2 user1
群聊 群组 id user1
聊天室 聊天室 id user1

user2(接收方):

会话类型 targetId senderUserId
单聊 user1 user1
群聊 群组 id user1
聊天室 聊天室 id user1
# 融云内置消息有哪些 ?

内置消息以及对应消息结构汇总: 内置消息

# 什么时候使用自定义消息 ?

当融云的内置消息无法满足开发者产品需求时,开发者可使用自定义消息

比如: 客户需实现分享名片功能,则可定义 CardMessage,代表名片消息。以 Web 2.x 注册消息为例,代码如下

var messageName = 'CardMessage'; // 消息名称
var objectName = 'RC:CardMsg'; // 消息内置名称
var messageTag = new RongIMLib.MessageTag(true, true); // 是否存储, 是否计数
var properties = ['userId', 'name', 'portraitUri', 'sendUserId', 'sendUserName', 'extra', 'type']; // 内置消息字段
RongIMClient.registerMessageType(messageName, objectName, messageTag, properties);
已复制
1
2
3
4
5
# 如何限制只有好友之间才能互发消息 ?

好友关系由开发者应用服务器自行维护。融云服务器提供消息发送能力,消息发送过程中默认不会做任何权限校验

开发者得到 userId 后即可发送消息,例如: A 发送消息给 B,只需要把 B 的 userId 传给融云服务即可

这样易用的设计可以使开发者高度自由集成自己业务,无需关心和融云的数据同步、安全问题,但如果 userId 如果泄漏,岂不是可以越过开发者的好友关系向任意用户发送消息 ? 针对此情况可采用: 单聊用户白名单服务

单聊用户白名单关系是双向的,只有将对方加入自己的白名单,对方才能送消息给自己,反之一样

例如:

开通单聊用户白名单后 A、B 之间互发消息

1、A 需要添加 B 到 A 的用户白名单中

2、B 需要添加 A 到 B 的用户白名单中

经过以上两步后方可互发消息,解决 userId 泄漏导致非好友之间可任意发送消息

注意: 用户白名单开通后,用户黑名单将实效,需要将黑名单用户数据转换至用户白名单中

功能使用:

1、申请开通功能,提交工单提申请,操作路径:融云开发者后台 -> 技术支持 -> 创建工单 ,开发者后台地址: https://developer.rongcloud.cn

2、设置用户白名单需要开发者的服务器来调用,详细可参考 Server API

# 如何拒绝接收某用户的消息 ?

单聊场景下,如果不想收到某用户的消息,可把此用户加入黑名单中,黑名单中用户无法给当前用户发送消息

例如:

1、用户 B 在用户 A 的黑名单中,用户 A 没有在用户 B 的黑名单中,则用户 B 无法给用户 A 发送单聊消息,用户 A 可以给用户 B 发送单聊消息

2、用户 A 和用户 B 都在对方的黑名单中,则用户 A 和用户 B 无法相互发送消息

3、用户 A 和用户 B 都不在对方黑名单中,则可相互发送消息

注: 黑名单功能不需开通即可使用

# Android 退到后台,却没有弹出通知怎么办 ?

请按以下步骤排查:

1、有没有正确设置用户信息? 如果该消息的发送者,在会话列表页面能正确的显示昵称和头像,则说明用户信息设置没有问题。否则,请先完善用户信息提供者

2、有没有多端登录?如果有,其他端先退出再进行测试

3、有没有设置消息免打扰?新消息提醒有没有关闭?如果有,则需要先关闭上述功能再进行测试

4、参考 远端推送提醒,确认有没有自定义一个继承自融云 PushMessageReceiver 的广播接收器

5、如果都不是上面的原因,需提工单 (opens new window)。并提供应用 从启动开始到接受后台消息 这个过程的日志输出

# 自定义消息样式是否可以修改 ?
# 接受不到消息怎么办 ?

1、确认 SDK 已经初始化,并且已经连接成功(走了 connect 成功回调)

2、排查发送端的发送消息填入的 targetId 是否是您的接收消息用户的 userId

3、可提供 AppKey、发送用户 id、接收用户 id、发送时间、消息 messageUId,提工单 (opens new window)排查

# 消息如何显示已读或未读 ?
# 消息的气泡是否可以更换 ?
# 长按消息是否可以多选?

文档是否解决您的问题 ?

如果遇到产品相关问题,您可 提交工单 寻求帮助