我的老师今天告诉我,当我们在服务器上请求页面时,服务器接受请求,在数据库中查找它是否可用,断开用户连接并将请求的页面发送给用户。服务器不知道您是否收到了数据包。这是因为服务器一次为用户提供服务的能力是有限的。这就是它不保持与用户的连接的原因。因此,它可以为更多的人服务。他特别举了 facebook 的例子,并说这就是为什么它为数百万人提供服务,但它不会变慢或挂起。如果是这种情况,那么我们如何从 Facebook 获得即时通知?或者在线好友列表几乎总是准确的?
如果 Facebook 没有一直连接到它的服务器,那么我们如何获得即时通知/消息?
网络工程
互联网
2021-07-05 17:54:07
1个回答
您的老师可能过度简化了解释,以便传达数据不会从您的手机(计算机、PC、笔记本电脑、roku 或任何其他“客户端”)24/7 全天候发送到服务器。
但是,您的问题的答案取决于对其他一些概念的理解。其中两个,特别是:HTTP 连接如何工作,以及推送通知如何工作。
HTTP 具有内置功能,允许在每个连接中发送多个请求(HTTP Pipielining),以及保持连接打开以便可以进行额外的剩余数据请求(HTTP Keepalives)。我解释了“常规”HTTP 连接是如何工作的,以及在此线程中使用 HTTP Keepalive 和流水线时它有何不同。
至于第二部分,关于推送通知如何在手机上工作的答案实际上与这个特定的堆栈交换略有不同。但它已经在这个线程的Android Stack Exchange中得到了回答。
通读这两个线程,您应该了解您的原始问题。如果没有,请随时更新您的问题、创建新问题或对此问题添加评论,我们可以从那里为您提供帮助。
其它你可能感兴趣的问题