远程推送就是苹果的APNs服务,在手机联网的情况下,手机会和苹果的的服务器建立一个长连接,应用程序处于退出或者在后台的状态时,可以接受到远程推送的消息.这个服务需要99美金.
app在登录的时候,iOS系统会自动的把设备UDID和app的bundleID发送给苹果的服务器,调用苹果的API生成一个devicetoken,然后苹果服务器会吧devicetoken打包成一个NSData对象发送给苹果设备,苹果设备把这个devicetoken告诉app应用,app应用吧devicetoken发给对应的app服务器.并保存在服务器上.此时有了登录账号ID和对应的devicetoken在服务器上.
如果app卸载了重装,deviceToken会变;
同一个账号,更换手机,device token会跟新;
同一个账号,多点登录会保存多个device token ;告诉苹果服务器几个devicetoken,就给您推送几个设备;
同一个手机,登录有多个账号时,如果devictoken之前存在,并且对应的账号ID不是和现在的账号ID一样,就清空之前账号的devicetoken,保存现在账号的devicetoken.
当我发消息给其他用户时,服务器会根据对方账号ID找到对应的deviceToken,告诉苹果服务器,苹果服务器根据devicetoken发送消息;