我是在服务器端调用restApi发送消息的,创建了对话组(conversation)后,发送到这个对话组,也把transient设置为了false(非暂态消息)了,但是还是收不到离线的即时消息呢?我把app打开后,然后退掉,发消息后重新打开app,退掉后发的消息就收不到,请问要怎么实现离线消息的收发才对呢?

你好,请问是Android还是iOS?
“退掉“是否是指在进程中被杀掉?

ios和android都需要的,昨天我测试android的时是把进程杀掉得,不杀掉进程就可以吗?不能像QQ一样,就算把app卸载掉,下次安装上登录也能接收到之前没有收到过的消息吗?

离线消息有两种方式可以参看:https://leancloud.cn/docs/realtime_v2.html#离线消息
可以看下是不是选择的“未读数量方式”

另外是当一个用户有两个设备存在的时候,离线消息只会发送到其中一个设备上。比如 A B 两个设备当前都不在线,给用户发消息后 A 设备上线能收到离线消息,B 之后上线就没有离线消息了。

还一个是需要确保用户的所有设备必须全部处在离线状态才会有离线消息。只要有一个设备当前在线,消息就作为在线消息发送到该设备上,其它设备上线后是没有离线消息的。可以通过后台 -> 消息 -> 推送 -> 帮助下输入用户 client id 查看用户在线状态。

如果以上检查都确定不是问题原因后,可以发来一些代码,留下 appid 以及目标接收用户的 client id 来看一下原因

在哪里设置“未读数量方式”呢?我没有设置,应该是默认的。
我现在是用conversation组的方式实现的,你的意思是如果A和B、C都在一个conversation组中,如果C像这个组里面发送消息,A、B、C其中一个在线,其他两个不在线的,都不会再收到离线消息是吗?

还有一个问题,虽然现在我用restApi进行实时通信,我都不知道我创建的对话是属于群聊的还是单聊的,restApi文档里面也没有说这两种分别怎么创建,我就按文档上的方法创建的对话。

A B C 在同一个 conversation 中这个 A B C 是三个不同的用户,不会出现 A 有离线消息 B C 都没有的。
我说的是同一个用户,有多个设备的时候,只有一个设备能收到离线消息。

第二个问题,没有群聊单聊之分,一个 conversation 内只有两个用户,就是所谓的单聊。有多个用户,就是群聊。群内成员随时可以添加随时可以删减。

设置“未读数量方式”

Android:

AVIMClient.setOfflineMessagePush(true);