为什么微信和QQ信息可以秒达?

发布于 2022-09-04 12:13:44 字数 95 浏览 17 评论 0

用微信和QQ发送信息时,对方无论身在何处,几乎都是秒达,大家知道后面的原理吗?大家都知道,设计这样的不容易,成千上万的手机连接着服务器,如何才能这么快找到目标手机然后发出信息?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

甜尕妞 2022-09-11 12:13:45

我来补充一下:
@边城 说的“在客户端之间建立连接”,存在一些问题。这样想,如果直接建立连接,服务器上就不会有你和对方发送的文件,当你们断开连接以后,你还能再次下载某个文件,这个文件从哪里来呢?你可以说缓存。 那么消息呢?我们知道qq和微信会存储你和对方的所有通话(不是不能,只是某些时候案件没有到达联系腾讯的程度而已),所以两者之间建立连接说法有些欠妥。
@晴天 说的点开窗口时服务器与你建立连接。首先不是当你点开窗口的时候这个连接才会建立。其次,如果服务器自动和你建立连接,那称作为推送,显然这里应该是手机(软件)主动与服务器建立连接,服务器只能listen请求。
除了上面几位说的,我还有一点补充就是发送消息的大小。多个对比发送一个字VS发送100个字(超过1个请求的最大长度),发送几个字vs发送图片,前者是因为建立的连接不同,后者是传输协议、服务器、存储算法不同。总结来说秒达有一部分原因在于数据量小。其他的还包括服务器架构,网络等。
-----分割线---
说一个有意思的内容,就是表情。我们知道发送表情可以用文字来替换。比如我们发送[胜利],会出现胜利的表情。同样我们发送“[胜利]”和发送相同数量的“[]胜利[]胜利[]胜利[]胜利”,然后看一下那个会“到达”更快。

染火枫林 2022-09-11 12:13:44

个人猜测,仅供参考

  • QQ 服务器群是很强大的,可以想像,一个服务器只对应着一部分用户,而且可能保持着长连续

  • QQ 发送文件和图片的时候,可以直接在客户端之间建立连接,那么发消息也可以

  • 客户端之间的直接连接其实有时候不如通过服务器快——如果服务器和网络够强的话

  • QQ 服务器恐怕不是放在一个地方,CDN 的原理知道吧?

嗫嚅 2022-09-11 12:13:44

无他,唯网络好而已。

楼上@边城说的不错,但是他说的第一点与消息传达速度无关,集群只是提高服务端承载量。

清音悠歌 2022-09-11 12:13:44

个人觉得:当你发送消息的时候,你需要有一个指定动作,比如点开你要发消息的那个人聊天窗口,当你点开的一瞬间,向服务器发送消息,建立对话连接,当然需要很好的服务器的支撑。收件也一样,当其他人点开你的窗口聊天时,服务器自动和你建立连接并向你发送其他人的信息。当一段时间没有消息交互,或者软件进程检测关闭,就断开连接。这样可以大大的减缓服务器的压力并建立即时连接。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文