默认
打赏 发表评论 11
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
文章信息量较多,阅读后产生的疑问也比较多,望Jack Jiang大佬不吝赐教:

引用:客户端发送的逻辑是直接基于http的所以暂时不用做重试,主要是在服务端往客户端推送的时候,会加上重试的逻辑。

基于Http的意思是闲鱼的发送消息流程是通过Http请求进行的?但又说服务端能往客户端推送,所以闲鱼的消息系统是基于SSE这种单向通信的吗?
基于Http所以暂时不用做重试的意思是当HTTP请求成功就表示消息发送成功就不用重试了吗?

引用:当A发送的消息(黄色)首先到达服务端,因为前面没有其他version的消息,所以会将原数据返回给A,客户端A接收到消息的时候,再跟本地的消息做合并,只会保留一条消息。同时服务端也会将此消息发送给B,因为B本地也有一个version=1的消息,所以服务端过来的消息就会被过滤掉,这就出现消息丢失的问题。

为什么要将原数据返回给A?是拿原数据充当ACK包的作用吗?还是仅仅为了将服务端实际递增生成的version返回给客户端让客户端进行更新,保证消息时序性?
评论 11
引用:JackJiang 发表于 2021-09-26 12:14
1)其实它还是有个双向互通的长连接,只是为了发送时省掉QoS送达保证机制,就用http了,因为http是请求响 ...

谢谢JackJiang大佬解答,的确整篇文章看下来,就感觉很多地方的实现有点迷惑。。。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部