V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zhgg0
V2EX  ›  Android

安卓利用第三方推送怎么实现聊天?

  •  
  •   zhgg0 · 2016-04-01 22:26:37 +08:00 · 11361 次点击
    这是一个创建于 3186 天前的主题,其中的信息可能已经有所发展或是发生改变。

    当有消息来的时候,用推送通知客户端,然后客户端带上上次拉取的消息 ID ,主动去自己的服务器拉取。服务器根据客户端带的 ID 判断客户端有多少条消息未接收,然后返回给客户端。 当 app 不在前台运行的时候,有消息来,也发推送给客户端,但客户端不去服务器拉取,等下次打开再一次性拉取。 不知道这种方式实现是否合理,或者大家有更好的方法?

    8 条回复    2016-11-28 11:30:33 +08:00
    chenhui7373
        1
    chenhui7373  
       2016-04-01 23:20:59 +08:00
    慕课网 - 见证消息推送的时刻 郭神带你飞
    qq316107934
        2
    qq316107934  
       2016-04-02 11:42:42 +08:00
    JPush 有现成的聊天 SDK
    zhgg0
        3
    zhgg0  
    OP
       2016-04-02 18:24:23 +08:00
    @qq316107934 不想用现成的,如果用现成的,万一提供聊天 sdk 的那一方很坑就没法改了,想换聊天 sdk 提供商的话没法兼容新老版本一起聊。如果只用推送的话,可以随时替换。
    hyzjshwo
        4
    hyzjshwo  
       2016-04-03 01:29:39 +08:00
    android 推送有到达率的问题
    pynix
        5
    pynix  
       2016-04-03 04:43:16 +08:00
    可惜不能用官家的推送服务
    zhgg0
        6
    zhgg0  
    OP
       2016-04-03 12:25:28 +08:00
    @hyzjshwo 小米用小米家推送,华为用华为家推送,其它的随便用一家,到达率会非常高的。
    zhgg0
        7
    zhgg0  
    OP
       2016-04-03 12:26:00 +08:00
    @hyzjshwo 集成多家推送,然后根据系统初始化一家
    Hxqing
        8
    Hxqing  
       2016-11-28 11:30:33 +08:00
    不合理。
    首先,“客户端带上上次拉取的消息 ID ,主动去自己的服务器拉取。”这个是不支持的。
    其次,这个需求并不是推送的需求,这个是后端云储存。客户端每次都验证自己本地的内容是不是和服务器的一致,不一致就同步,这是典型的云储存的需求。
    还有一点,这样实现的话,服务器就要代客户端收取消息,这个是不科学的。
    最后,你要解决这个问题的话,可以掏钱让第三方推送服务商,例如,云巴( Yunba.io )给你定制服务。当然,要是想免费的话,可以自己搭 firebase 服务器。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2937 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 13:25 · PVG 21:25 · LAX 05:25 · JFK 08:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.