默认
发表评论 2
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] MobileIMSDK中心跳频率的问题
我看代码的时候发现心跳频率可以设置成3秒一次,然后10秒没有收到服务端的反馈就被客户端默认为断开连接,那么假如我先发送一个,过了三秒又发送了一个,然后在第5秒的时候接收到了反馈,这个反馈对应的是客户端哪一次发送的?而且客户端发送了两次,没有反馈的那次发送的数据去哪了?

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

标签:MobileIMSDK
上一篇:[已回复] MobileIMSDK中心跳的频率是在哪里初始化的?下一篇:[已回复] MobileIMSDK的ios版本只有Objective-C没有swift版吗

本帖已收录至以下技术专辑

推荐方案
评论 2
首先,无论是UDP协议还是TCP协议都需要心跳,这不用再讨论了,有疑问就去看看这篇:http://www.52im.net/thread-281-1-1.html

其次,UDP协议理论上是不像TCP一样保证百分百送达的,所以小概率的丢包很正常,这也是UDP协议的特性所在。

最后,至于你多发的几次心跳,服务端反馈的是对应的哪一个心跳,这是不需要对应上的,因为:需要心跳的本质就是要让服务端知道客户端“还活着”,这就行了,你多发几个包,对于服务端而言,反正你就是活着,其它无所谓了,简单地理解来说心跳包也就这么个用途了(当然复杂系统里的心跳包可能包含了是一些复杂算法的一部分,这不在本次讨论范围之内)。

另外,我在这篇《[已解决] MobileIMSDK中的心跳发起顺序和送达保证机制》讨论过有关心跳的一些内容,可以看看。
ok
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部