Answers:
您可能会想到,Google在实现细节方面非常安静。因此,我将以一般情况和非常基本的形式对此进行描述。
推送的方式是客户端(即电话)打开到消息传递服务器(例如Google)的TCP连接。只要打开手机,此连接就将保持打开状态。幸运的是,TCP连接在不传输任何内容时绝对不使用带宽,因此它不会浪费大量数据,无线电发射机可以关闭电源,等等。
该连接可以无限期保持打开状态,但是在NAT之后,NAT基础结构会保留正在处理的打开连接表,并丢弃闲置了一段时间(通常为10-15分钟)的连接。两端均未收到此通知。因此,这可以通过发送TCP保持活动数据包来处理,该数据包刷新运营商NAT连接表中的条目。这仅花费大约50个字节左右,并且仅需要每隔几分钟执行一次。