zoukankan      html  css  js  c++  java
  • 自有账户体系对接百度云推送必须要弄懂的问题

    同一个设备上的同一个APP多次绑定返回的user_id相同,channel_id也相同。
    同一个APP在不同的设备上绑定user_id是不相同的,channel_id也不相同。
    同一台设备对应唯一一个channel_id。(多个APP共用一条通道),所以在同一台设备上的多个APP绑定时,它们的channel_id是相同的。
    同一台设备上的不同APP对应不同的user_id。
    不同设备上的相同APP对应不同的一对[channel_id, user_id]

    怎么让自定义账户体系的id跟推送账户[channel_id,user_id] 对应 ?

    目前百度云推送消息只能到APP,不能为APP的自定义账户推送消息。如果想对APP的单个自定义账户准备推送消息,那么就需要知道当前用户客户端的设备在云服务器上的维护信息,所以自己要在服务器上建立一张对应表[自定义用户ID,user_id,channel_id]。

    自定义账户体系的id跟推送账户[channel_id,user_id] 对应是一次绑定就可以了吗?

    不是!因为自定义账户在APP上,可能会在不同的设备上登录,设备对应的
    [channel_id,user_id]就会不同,所以需要实时绑定并维护对应关系。当自定义用户登录APP时,就要重新绑定下对应关系。当用户退出APP,就要删除对应关系。

    账号发送消息需要注意什么问题?

    服务端给对应的自定义用户发送消息,需要通过维护的关系,来找到云推送的
    [channel_id,user_id], 如果找不到对应关系,说明该账号暂时未在线,自动放弃当前消息对云推送服务的调用。云推送的前提就是,云推送客户端相对于云推送服务器是在线的。相对于业务来说,[channel_id,user_id] 对应的客户端APP上的登陆用户,正好是我们希望推送的用户。这样才完成我们账户体系上的一次成功推送。

    考虑过同一台设备上同一APP上账户的切换问题么?

    同一台设备上同一APP上,对应的[channel_id,user_id] 是一样的,所以a账户登出,b账户登录。如果后端有需要推送的消息给a,那么如果不及时去除账户a的绑定对应关系,那么就很会出现b会收到a的推送消息的情况。所以后台再处理推送的时候,由于前端在不断的登陆登出的变化,用户的对应关系也在变化。服务端在推送消息,要确保获取即时的账户绑定对应关系,从而告知云推送服务端正确的推送的客户端。

    延迟问题

    即使获取到再即时的绑定对应关系,由于APP上切换账号的迅速,再加上云推送服务器的延迟问题,那么当消息推送到客户端的时候,很可能当前APP上的登录用户,已经不是发出推送的目标用户了,这样就会出现推送发错的问题。为了避免这样的问题,消息体格式,需要有接受用户id(项目编号)标记,在APP端,需要增加消息校验,当前消息是否是自己的消息,如果不是,则丢弃掉,并将告知我们服务端该消息发错,需要重新发送。

  • 相关阅读:
    WPF 使用Code创建Canvas,StackPanel,DockPanel。Grid,Border,UniformGrid,ViewBox,WrapPanel等
    myeclipse6.5安装maven2插件教程 (Maven+MyEclipse6.5)
    myeclipse使用maven教程
    【技术贴】如何汉化 myeclipse 中的svn插件
    【技术贴】小米利用Connectify共享无线网卡连接教程
    Myeclipse 自动生成 javadoc 教程
    MyEclipse6.5配置Tomcat7.x
    maven构建项目自动部署到tomcat中遇到的各种sb问题总结
    吐槽之程序猿
    html5 css3构造的漂亮表格
  • 原文地址:https://www.cnblogs.com/jpfss/p/7494005.html
Copyright © 2011-2022 走看看