【发布时间】:2015-01-27 22:10:27
【问题描述】:
我正在分析电报或 whatsapp 等聊天应用程序。如您所知,他们正在使用与服务器的 tcp 连接。 tcp 连接的大问题是,当互联网连接出现任何问题时,xmpp 客户端将与服务器断开连接,而不会告诉服务器我已断开连接,并且将从服务器打开 tcp 连接并且消息将丢失。
因此,客户端和服务器了解连接丢失的一种方法是使用 ping 。也就是说,我们为服务器和客户端设置一个时间来相互 ping,如果连接丢失,请重试连接。这个解决方案的主要问题是它会消耗大量电池电量,例如,如果我们将客户端设置为每 10 秒 ping 一次,如果我们将服务器设置为每 40 秒 ping 一次用户,那么当我们在处理大量用户。
但是电报和whatsapp没有这个问题,因为他们会明白tcp连接最多30秒就会丢失,电报甚至更快,它会在4或5秒内知道。
我的问题是我不认为 whatsapp 或电报正在使用 ping 系统实际上每 10 秒 ping 服务器一次,因为它会耗尽电池。
你的想法是什么?他们是在使用 ping 系统还是已经找到任何解决方案。
如果有人向我解释他们是如何做到的,我将非常感激
【问题讨论】:
-
我不是开发人员,但也许这个链接有答案。 github.com/DrKLO/Telegram/blob/…
标签: android networking tcp xmppframework whatsapp