相同点:
实现思路。
自己的服务器与apple(APNS)或google PUSH服务器进行通信,PUSH服务器依据相应的条件(如:当前终端在线),向相应的终端设备发送PUSH信息。
终端设备通过自己确定身份的机制告知PUSH服务器我存在,并将PUSH服务器返回给终端的一个ID发给自己的服务器,当自己服务器需要PUSH时,与Apple或android PUSH服务器通信,其中需发送ID信息。
不同点:
设备身份的确定
APPLE
每个终端设备独有设备证书,而APNS也有一个服务器证书,两者建立的时候,进行证书的有效性检查。
PUSH认证检查分两层:
1 TLS加密连接
TLS连接成功,会将设备证书发给APNS,并每15分钟会进行一次TLS握手;若握手失败,会不断去连接。
2 令牌认证
TLS连接成功后,通过设备证书及密钥计算出每个设备的设备令牌,然后将设备令牌发给终端设备,以确定设备的唯一身份。
Android
需要用户自己注册一个gmail邮箱,通过gmail邮箱确定终端设备。