引用:JackJiang 发表于 2019-12-13 10:46 我在实现群通知的时候,有重复推送:例如邀请他人入群,离线用户会接收到两条推送 "邀请了XXXX入群" 然后我查看了日志,发现通知消息既走了MQServer的离线处理,又走了Server的离线处理,这是什么情况? |
引用:JackJiang 发表于 2019-12-13 10:46 就是不确定手机与手机的离线在哪里处理的?日志也很少都是SDK里面的日志,我也不可能去看SDK里面实现。 我知道的是 ChatServerEventListener 里面 onTransBuffer_C2C_RealTimeSendFaild_CallBack (通用数据实时发送失败后的回调函数定义(客户端发给客户端的(即接收方user_id不为“0”的情况)))处理的离线消息,应该所以有的离线都走这个回调的? |
引用:IM、你好 发表于 2019-12-12 16:45 MQServer是给web那边的离线消息存储用的。 我感觉你逻辑有点乱。你可以开个测试环境,什么也不做,模拟离线、在线各种情况下,消息的走向(通过分析服务端的日志就能看出来),然后反过来再来看代码,思路就会清晰多了。思路清晰了后,再来想代码的实现,就会容易 多了。 切记,一定不要思路搞乱,做im尤其是这样,因不im太复杂了。 |
引用:JackJiang 发表于 2019-12-02 11:21 我参考IOS推送在 Server 的 OfflineMessageManager 实现了:web 给安卓发送消息,安卓可以接收到单聊、群聊的离线消息。但是我在测试安卓给安卓发送消息的时候,对方接收不到。并没有走Server的OfflineMessageManager离线处理 手机与手机之间的离线处理是在MQServer里面实现的吗?但是我看里面的IOS推送处理都注释掉了,还是在哪里实现的? |
引用:JackJiang 发表于 2019-12-02 11:21 好的,谢谢,我再看看 |
引用:IM、你好 发表于 2019-12-02 09:06 RainbowChatMQServer中的离线处理,相当于是RainbowChat-Web分享出来的,实现的是RainbowChat-Web的离线处理。 我要实现离线推送,先按我上面的回贴截图,把ios的配置好,要增加android的推送的话,只要在有ios推送的调用里,增加一下android的推送处理逻辑即可,照葫芦画瓢。 |
引用:JackJiang 发表于 2019-11-29 22:25 我的意思是RainbowChat 和 RainbowChatMQServer 都有 OfflineMessageManager.java 离线处理的逻辑,为什么两个都有离线处理的逻辑?如果要实现离线推送是以那个为准? |
引用:IM、你好 发表于 2019-11-29 17:54 先不管别的,本地是好的,放到服务器就不行,那肯定是另有原因,仔细检查一下,同一份代码不可能放一地方就变质了,又不是食物 |
引用:JackJiang 发表于 2019-11-29 16:56 有个问题, RainbowChat 和 RainbowChatMQServer 的 OfflineMessageManager.java 这一部分是什么逻辑? 我之前在本地 RainbowChat 离线存数据库的时候加了一个字段,本地测试都是好的,但是放到服务器就是不行,最后在 RainbowChatMQServer 也加上新增的字段就好了? |
RainbowChat里已经完整实现了ios端的离线推送,详细看一下服务端部署手册的第10章节:
![]() |