zoukankan      html  css  js  c++  java
  • 回忆远程推送的原理

    回忆一下远程推送的过程

    远程推送:又称APNs

       长连接:

           特点:传输速度快

           作用:系统升级(正常都是分批推送),查找我的iPhone

    下面介绍一下远程推送的原理:

             1.设备的唯一标识:UDID.用来区别我们的设备

             2.应用的唯一标识:bundleID.用来区别应用程序

         因为这两者牵扯用户的信息,所以苹果一定不会提供给我们,因此苹果搞了一个DeviceToken(包含UDID和bundleID),所以只需要把DeviceToken传给苹果,苹果就能解析,这样就可以确认你手机上的应用

    例子:微信的两个客户端A和B,首先保证这两个都是联网状态。

            现在A要发消息给B,通过微信服务器将消息传递给B。A和B的微信客户端都在前台,通过微信服务器就可以正常聊天

            当B的微信客户端不在前台时,这时A发送过来一条消息,这时就需要用到APNs

    解释一下微信如何拿到DeviceToken,和传递DeviceToken

         1.当微信程序启动时,调用苹果提供的API生成DeviceToken,因为不会提供(UDID和bunldeID),所以只能拿到返回值,然后保存到服务器

         2.这样就能通过微信账号获得DeviceToken,然后传给苹果(APNs)

         3.APNs收到消息后,通过长连接传递给对应的客户

    目前想到的一些问题:

      1.假如更换设备了

          在重新登录的时候,判断上传登录的设备,更新数据库中的DeviceToken(以前的设备不能使用了)

      2.多点登录问题(iPad 和 iPhone)

         判断设备类型,保存多个DeviceToken到数据库中,这个取决于产品的需求

      3.显示信息这块:显示信息为4条,再推送一条,应该是5条

                             点开后应该为0 或者为 5

               第一种方法,计数器减减

               第二种方法:计数器清零

               客户端与服务器同步

                 

  • 相关阅读:
    谷歌 colab调用 Kaggle 数据集
    TensorFlow/Keras binary_crossentropy损失函数
    R语言 pivot_longer 图表变换
    R语言 ggplot2 柱状图
    R语言 ggplot2 笔记
    Bash 批量删除指定后缀的文件
    MacBook 风扇控制软件 Macs Fan Control
    R语言 dplyr selec 辅助函数
    R语言一次性更新全部packages
    R语言 glue 版本冲突
  • 原文地址:https://www.cnblogs.com/jinxin680/p/5304400.html
Copyright © 2011-2022 走看看