默认
发表评论 14
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已解决] 求教关于RainbowChat中消息撤回功能的一些逻辑疑问
在做撤回功能时遇到一些问题,求教

1、在线情况下:手机端可以将撤销的消息指纹码传入后台,后台可以从数据库将消息删除,并且推送一条消息给手机端,返回撤销的消息的指纹码,手机端将消息删除;
2、离线情况下:在存入离线消息时,根据消息机制,无法将需要撤销的指纹码保存,返回给手机端,手机端也就无法删除需要撤销的消息??

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:RainbowChat

1548125002316.jpg (285.58 KB, 下载次数: 2194)

1548125002316.jpg
上一篇:RainbowChat(iOS端) 版本更新日志(本贴持续更新...)下一篇:RainbowChat[专业版] 的v5.0版已发布!
推荐方案
评论 14
我觉得你可能是思路上有点混乱,你可以看看我在这个帖子里的回复:《求教关于IM中服务端做消息撤回功能的问题
引用:JackJiang 发表于 2019-09-23 18:52
我觉得你可能是思路上有点混乱,你可以看看我在这个帖子里的回复:《求教关于IM中服务端做消息撤回功能的问 ...

在线的情况按照你的逻辑处理是可以的
引用:JackJiang 发表于 2019-09-23 18:52
我觉得你可能是思路上有点混乱,你可以看看我在这个帖子里的回复:《求教关于IM中服务端做消息撤回功能的问 ...

在做群聊消息撤回时,如何将群聊随机生成的指纹码的离线消息删除掉??
引用:IM、你好 发表于 2019-09-25 21:28
在做群聊消息撤回时,如何将群聊随机生成的指纹码的离线消息删除掉??

你需要做两件事:
1)在服务端将群聊消息分发出来时,你需要将每条扩散写出的消息里,放入一个字段,这个字段记截的是之前发出群聊消息时的原始消息指纹码;
2)收到这条群消息的人,撤回时,提交服务端请求,服务端用原始消息指纹码到离线表里匹配这条离线消息(群聊的离线消息,一个群只记一条,而不是每个人都记一条),匹配到后要么删除,要么用“某某已撤回一条消息”这样的字眼覆盖原消息内容。
引用:JackJiang 发表于 2019-09-26 10:35
你需要做两件事:
1)在服务端将群聊消息分发出来时,你需要将每条扩散写出的消息里,放入一个字段,这 ...

我们要加字段的话,需要注意哪些?在那些地方进行改动?
引用:IM、你好 发表于 2019-09-26 11:11
我们要加字段的话,需要注意哪些?在那些地方进行改动?

把代码逻辑读一遍,一条群聊消息,是如何从客户端A到服务端,再扩散写到客户端B、客户端C... 这完整的逻辑,先读懂。就知道怎么动手。

不然,你这么笼统的问我,如果你是大美女的话,哥我就只能手把手地教你写了。。。 大老爷们就算了
引用:JackJiang 发表于 2019-09-26 12:25
把代码逻辑读一遍,一条群聊消息,是如何从客户端A到服务端,再扩散写到客户端B、客户端C... 这完整的逻 ...

在onTransBuffer_C2C_CallBack();方法里面尝试加参数,但是涉及较多都都失败了

3.png (47.84 KB, 下载次数: 2298)

3.png
引用:JackJiang 发表于 2019-09-26 12:25
把代码逻辑读一遍,一条群聊消息,是如何从客户端A到服务端,再扩散写到客户端B、客户端C... 这完整的逻 ...


2.png (18.33 KB, 下载次数: 2220)

2.png

1.png (30.95 KB, 下载次数: 2267)

1.png
引用:JackJiang 发表于 2019-09-26 12:25
把代码逻辑读一遍,一条群聊消息,是如何从客户端A到服务端,再扩散写到客户端B、客户端C... 这完整的逻 ...

这个函数里面怎么新增参数  boolean onTransBuffer_C2C_RealTimeSendFaild_CallBack(Protocal p)
引用:IM、你好 发表于 2019-09-26 14:24
这个函数里面怎么新增参数  boolean onTransBuffer_C2C_RealTimeSendFaild_CallBack(Protocal p)

你上面的回复,全是扯蛋,还是没看懂。

你按我的思路来,我来引导你:
你先告诉你,你有没有读懂我在7楼要你去看的这个逻辑:“一条群聊消息,是如何从客户端A到服务端,再扩散写到客户端B、客户端C... 这完整的逻辑”。
引用:JackJiang 发表于 2019-09-26 14:33
你上面的回复,全是扯蛋,还是没看懂。

你按我的思路来,我来引导你:

这个知道的

告诉你,你看到的群聊消息,在服务端的最终扩散写发送那段,在哪里,截个图,我确认一下你有没有看对地方。

然后,我告诉你如何把原始指纹码取出来,放到哪里发送出去。
引用:JackJiang 发表于 2019-09-26 15:13
告诉你,你看到的群聊消息,在服务端的最终扩散写发送那段,在哪里,截个图,我确认一下你有没有看对地方 ...

已经找到哪里的问题了,就是说:客户端A在发给服务端的时候,我们需要将指纹码保存下来,但是加的字段一直无效,后来发现离线消息并没有走这个方法,然后就想到了一直被忽略的 RainbowChatMQServer 在这里找到了离线插入数据库的方法,现在可以插进数据库了。接下来可以继续处理了。
万分感谢!

MQServer.png (164.54 KB, 下载次数: 2307)

MQServer.png
引用:IM、你好 发表于 2019-09-26 15:35
已经找到哪里的问题了,就是说:客户端A在发给服务端的时候,我们需要将指纹码保存下来,但是加的字段一 ...

嗯嗯
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部