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

统一推送对即时通讯软件并不友好

  •  
  •   wsseo · 2020-09-11 13:30:53 +08:00 · 15247 次点击
    这是一个创建于 1533 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在是白名单机制,以后厂商都会用上统一推送。
    但是通过第三方推送会有延迟,丢消息的问题,尤其是对即时通信软件微信,QQ 。
    56 条回复    2020-09-13 22:22:44 +08:00
    lshero
        1
    lshero  
       2020-09-11 13:33:41 +08:00
    IM 通常离线后才会走推送,在线的话直接自己就处理消息了
    wsseo
        2
    wsseo  
    OP
       2020-09-11 13:36:04 +08:00
    @lshero 以后没有白名单,放后台不一会就被杀了
    aircjm
        3
    aircjm  
       2020-09-11 13:36:44 +08:00
    那为什么苹果可以搞统一推送呢
    kop1989
        4
    kop1989  
       2020-09-11 13:43:28 +08:00
    目前看推送的延迟不会太高(也就是秒级的)。
    丢消息是因为 app 后台被杀了,而用的推送是透传消息不是系统级 notification 。导致收到透传字符串但无 app 服务响应。
    而且你以为不用推送来同步消息就没延时么……
    junyee
        5
    junyee  
       2020-09-11 14:04:14 +08:00 via iPhone
    可是通讯类 app 。对我的低配小电池手机不友好啊
    gtanyin
        6
    gtanyin  
       2020-09-11 14:10:57 +08:00   ❤️ 2
    楼主弄错啦,统一推送并不是一个第三方 app 装在手机里面。是集成在系统中的,系统级不会被杀的。。
    LZSZ
        7
    LZSZ  
       2020-09-11 14:12:39 +08:00
    微信根本没有接入其他推送通道吧
    crclz
        8
    crclz  
       2020-09-11 14:15:47 +08:00
    借楼问一下,电脑版微信为啥会隔一段时间就发生丢消息的行为?
    wsseo
        9
    wsseo  
    OP
       2020-09-11 14:17:22 +08:00
    @kop1989 至少 websocket 比推送快,推送还要先到推送服务器,再推到用户设备,指不定哪个环节会出问题
    vone
        10
    vone  
       2020-09-11 14:23:16 +08:00
    各厂的推送渠道微信和 QQ 应该就没接入。
    接入了推送渠道,对应渠道的厂商就能掌握通知数据,存在隐私泄露的风险吧。
    kop1989
        11
    kop1989  
       2020-09-11 14:24:06 +08:00
    @wsseo #9 这和推送并不冲突。推送是应对 app 非活跃状态的通信方案。不管是长轮询还是 websocket 还是 tcp 长连接,都只能针对于活跃状态的 app 。
    你不能指望你开发个 app,这手机就永远跑着你的 app 不锁屏不切换吧。
    gongym
        12
    gongym  
       2020-09-11 14:37:07 +08:00 via Android
    @crclz 应该不是丢消息,是消息没有同步。电脑客户端未在线时不会接收消息并存储。上线后会主动同步一部分消息。并不是全部的消息。这个你自己尝试做一个 IM 的客户端应该会比较好理解。
    strongcoder
        13
    strongcoder  
       2020-09-11 14:39:02 +08:00
    @aircjm #3 苹果就一个品牌 安卓可是上百个品牌厂商 让他们统一作战可不是一般的难
    luhe
        14
    luhe  
       2020-09-11 14:40:24 +08:00
    那咋办嘛
    whitev2
        15
    whitev2  
       2020-09-11 14:49:22 +08:00
    @strongcoder #13 看前提是“以后厂商都会用上统一推送”,在这个前提下讨论对通讯软件的影响
    whitev2
        16
    whitev2  
       2020-09-11 14:50:18 +08:00
    上了同一推送之后,即时通讯软件都需要审核才能使用推送通道了
    xz410236056
        17
    xz410236056  
       2020-09-11 14:54:49 +08:00
    即时通讯什么时候靠推送了?不都是 socket 之类的吗。iOS 后台就给你 N 分钟,死了之后才走 APNS 啊。安卓杀不死后台才是问题。
    pmispig
        18
    pmispig  
       2020-09-11 14:59:20 +08:00
    腾讯表示,你统一你的,鸟你算我输
    lshero
        19
    lshero  
       2020-09-11 15:20:44 +08:00
    @wsseo 财大气粗的 IM 可以走短信,万一统一推送做的太烂没准运营商的 RCS 可以发展起来呢。
    murmur
        20
    murmur  
       2020-09-11 15:21:28 +08:00
    即时通讯应该是我想聊的时候开着前台跟你聊,不想聊的时候别打扰我,找我麻烦短信或者电话
    howellz
        21
    howellz  
       2020-09-11 15:25:25 +08:00
    统一推送的最大意义在于避免大家都来活动。统一推送的最大延迟不是网络,而是来自于唤醒应用。所以应用要做的是快速唤醒响应。
    volks
        22
    volks  
       2020-09-11 16:04:40 +08:00 via Android
    telegram 从来消息秒到
    ddefewfewf
        23
    ddefewfewf  
       2020-09-11 16:08:52 +08:00 via iPhone
    @aircjm 没被墙
    wvwking
        24
    wvwking  
       2020-09-11 16:12:58 +08:00
    @aircjm Apple 直接拿了一個 A 段來做推送服務, 而且系統集成, 各方面都不是一個第三方推送服務能比的
    Mcx
        25
    Mcx  
       2020-09-11 16:23:48 +08:00
    MIUI 企业微信,推送还算及时
    jiangzm
        26
    jiangzm  
       2020-09-11 16:30:27 +08:00
    @wsseo 参照 iOS 不就好了,微信也没毛问题。如果 App 离线或者在后台本身对时效性要求没那么高,能秒级接收就够了,会话状态肯定是走 App 自己的长链接。
    xiva1209
        27
    xiva1209  
       2020-09-11 17:40:45 +08:00
    全世界的 IM 软件都走的 fcm,就中国特殊些,不能走统一推送
    dswyzx
        28
    dswyzx  
       2020-09-11 17:55:54 +08:00
    @xiva1209 我大清国情是,系统级推送推送广告
    Muniesa
        29
    Muniesa  
       2020-09-11 17:58:41 +08:00 via Android   ❤️ 1
    明明是即时通讯软件对统一推送不友好
    lengyihan
        30
    lengyihan  
       2020-09-11 18:29:36 +08:00 via Android
    苹果做的挺好,
    weakish
        31
    weakish  
       2020-09-11 18:48:59 +08:00
    @lshero 短信有限制的,不能给一个手机号狂发短信的。
    ZhiyuanLin
        32
    ZhiyuanLin  
       2020-09-11 18:54:59 +08:00
    @vone #9
    Signal 之类端对端加密的 IM,都是用系统推送通道透传一个通知,拉起 App 自行抓取信息。
    非端对端加密的 IM 也可以这样搞。
    pC0oc4EbCSsJUy4W
        33
    pC0oc4EbCSsJUy4W  
       2020-09-11 19:25:51 +08:00
    国内 IM 推送基本靠流氓自启,常住内存耗电,微信+qq 后台基本上 600M 左右(加上阿里系更多),现在手机 8G 内存已经快不够用了,各家都疯狂杀后台保存内存和耗电续航。

    root 后,完全杀微信 qq 后台,一样没有推送。

    统一推送是好事啊,推送又不会涉密。对比 apple,很难微信 QQ 延迟漏掉接收的。
    Elissa
        34
    Elissa  
       2020-09-11 21:13:04 +08:00 via Android
    现在需要开通知栏的只有 QQ 和微信,巴不得这俩走统一推送,现在靠锁后台生怕被清掉了,收不到消息
    aircjm
        35
    aircjm  
       2020-09-11 22:00:16 +08:00
    @Mcx 咨询问下,企业微信是怎么解决语音和视频通话的,MIPUSH 好像不会识别,只会发一个通知了事。
    aircjm
        36
    aircjm  
       2020-09-11 22:01:07 +08:00
    @strongcoder 期望统一推送平台可以吧 现在 mipush 和 Buzzkill 配合的很好
    aircjm
        37
    aircjm  
       2020-09-11 22:02:08 +08:00
    @ddefewfewf 特殊情况那没办法的 不可抗力因素
    TUCANA
        38
    TUCANA  
       2020-09-11 23:15:21 +08:00 via iPhone
    @aircjm ios 有的时候确实有延迟,不推送通知的问题
    lslqtz
        39
    lslqtz  
       2020-09-12 01:40:42 +08:00
    统一推送实时性和 QQ 这类 app 的实时性的问题只在于轮询间隔……
    一般都是秒级的,日常使用不会有什么影响,除非推送服务器负载大响应慢
    lslqtz
        40
    lslqtz  
       2020-09-12 01:43:25 +08:00
    还有就是即时通讯 app 在后台时一般确实是通过自己的协议来获取的,因为在后台的话你可能随时会切回去,消息也是仍在获取的,通知只是顺便集成在内了
    JensenQian
        41
    JensenQian  
       2020-09-12 02:02:36 +08:00 via Android   ❤️ 1
    钉钉在安卓这边支持挺好的,除了 fcm 之外我发现竟然支持 mipush https://imgur.com/gallery/WgBLSwn
    nuk
        42
    nuk  
       2020-09-12 02:34:41 +08:00
    体验不是很好
    经常丢推送
    dinghmcn
        43
    dinghmcn  
       2020-09-12 08:11:04 +08:00 via Android
    @vone #10 可以像 FCM 一样只发送一个空消息推送提醒用户有消息,微信打开的时候自己再接受真实的消息展现给用户
    xxpandxxp
        44
    xxpandxxp  
       2020-09-12 08:29:54 +08:00
    以 qq 和微信的冷启动速度, 后台不保活, 走统一推送, 体验不一定有常驻后台好
    nksky
        45
    nksky  
       2020-09-12 09:18:34 +08:00
    钉钉推送就挺快,电脑上还没响完,手机就推了
    xuanbg
        46
    xuanbg  
       2020-09-12 09:44:56 +08:00
    推送只是通知你有新消息,不是通过推送把消息发给你啊。这个和是不是即时通讯 APP 有什么关系?
    wewewe
        47
    wewewe  
       2020-09-12 10:31:13 +08:00
    使用息知通知效果更好
    https://juejin.im/post/6864925073531207688
    MengiNo
        48
    MengiNo  
       2020-09-12 11:01:09 +08:00
    先屏蔽掉 Android 官方的 fcm,再把 iOS 的 CallKit 砍掉。到底他是想让你想让你收到推送呢,还是不想让你收到推送?
    DSYG
        49
    DSYG  
       2020-09-12 11:50:28 +08:00 via Android
    @LZSZ 微信靠自己 自己玩自己的
    EminemW
        50
    EminemW  
       2020-09-12 11:53:43 +08:00 via iPhone
    微信,qq 好多年前就丢消息
    tsingjyujing
        51
    tsingjyujing  
       2020-09-12 11:59:02 +08:00
    统一推送才比较靠谱吧,你想啥情况才要常驻后台接收数据啊,肯定是监视用户隐私的时候啊。
    安卓的内存消耗一直比苹果大很多,除了 JVM 的原因,很大一部分原因就是这些流氓。
    SenLief
        52
    SenLief  
       2020-09-12 14:46:45 +08:00
    微信和 qq 一直都不走推送,仗着人数众多,用户不敢惹的状态。
    HangoX
        53
    HangoX  
       2020-09-12 18:13:56 +08:00
    通过第三方肯定是会有延时的,但是推送是发生你的 app 被杀的情况,这个时候用户对于消息的延时接受会降到几秒级别,推送完全可以达到。
    当用户通过点击通知栏启动应用之后,应用应该通过建立 socket 连接与服务器连接上,这个时候消息延时就变成毫秒级别了,同时就不会通过第三方发送到用户手机上,而是通过 socket 连接直接发送消息。
    hahaandyou001
        54
    hahaandyou001  
       2020-09-12 18:48:00 +08:00 via Android
    外国 app 直接用 fcm 推送,就你国屁事多
    fansangg
        55
    fansangg  
       2020-09-13 01:27:47 +08:00
    @JensenQian 钉钉不止 mipush,华为 ov 也有
    Mcx
        56
    Mcx  
       2020-09-13 22:22:44 +08:00
    我试了一下,确实是这样……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2799 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 13:11 · PVG 21:11 · LAX 05:11 · JFK 08:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.