推送的原理是什么?

这里的推送指的是客户端可以实时接收到服务器的最新数据,而不是轮询实现的定时拉取,想知道其中的原理,比如如何建立网络连接?网络请求是怎样的?服务器如何处理连接?如何保持连接而又不会导致客户端过量耗电和耗流量?

阅读 6.5k
3 个回答

如果你是问 web 的话,可以了解下 websocket

推送的原理很简单,就是长连接。
因为普通的HTTP或者其他方式的短连接,在客户端获得响应后就关闭了连接,所以服务器就无法再知晓客户端的网络位置,也就无法进行消息的推送。
而长连接就是客户端与服务器建立长时间的连接,当需要推送时,服务器就可以根据连接的信息找到客户端并能发送信息给客户端。这样就实现了推送。

一般是长连接,客户端向服务器发送请求,然后服务器hold住这个链接,用来保持联系。

客户端如果断开链接,根据协议会通知服务器关闭此链接。

服务端为了防止客户端如果非正常断开链接,会定时发送心跳包,检测客户端是否在线。

需要及时通讯的一般都是长链接,比如你开着QQ断开网络,APP立马会有反馈,开着浏览器着不会。

关于电量的话,影响因素很多。

你的问题太大了,足够写很多了,这里也是给你简单说了下,里面还有很多细节可以了解。

项目初期一般推荐使用第三方推送,不写名字了,避免推广嫌疑

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏