首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
iOS 开发实用书单
iPhone App Development: The Missing Manual
Cocoa and Objective-C: Up and Running
Cocoa Programming for Mac OS X
深入浅出设计模式 Head First Design Patterns
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
V2EX  ›  iDev

苹果 voip pushkit 推送如何知道客户端已经被卸载

  •  
  •   fvckDaybyte2 · 8 天前 · 993 次点击
    卸载后尝试进行推送,苹果服务器依然是 200 推送成功,导致主叫方一直在静音等待,如果没卸载,被叫被推送唤醒后会发送彩铃音频流给主叫。

    预期卸载了,推送时应该返回 410 或者 400 来提示 token 无效,这样主叫方就可以播放“您拨打的是空号”的提示音了,而不是静音等待……苹果这么设计是让我们自己做周期唤醒检测么,每小时推送唤醒检查一次?这样岂不是浪费电?
    11 回复  |  直到 2019-04-16 00:12:38 +08:00
        1
    ai277014717   8 天前
    无法检测
        2
    ai277014717   8 天前
    因为卸载的时候 App 没有机会处理事情
        3
    finab   8 天前
    VoIP 应用不是可以后台建立一个 TCP 连接吗 ? 这个 TCP 连接被系统接管不会被杀一直存在

    另外收到这个推送时,APP 应该被激活了,可以执行一点代码,发个信号给服务端证明我收到了推送
    如果发了推送,被叫方没有回应,则证明不在线

    没开发过 VoIP 应用,上面仅供参考
        4
    skylancer   8 天前
    我记得 VOIP Pushkit 发起推送的时候是会拉起 App 的,剩下的活自己干就行
        5
    fvckDaybyte2   8 天前
    @ai277014717 不是让 app 处理,预期是让苹果 apns 返回 token invalid ……
        6
    fvckDaybyte2   8 天前
    @skylancer 正如我所说,唤醒后会发送彩铃音频流给对方😂,问题就是我怎么知道有没有卸载?
        7
    fvckDaybyte2   8 天前
    @finab 很早就不让 tcp 长链接了,而且我们 server 也不支持 tcp,信令和 payload 都是 udp😂。感谢回复。
        8
    finab   8 天前
    @fvckDaybyte2

    客户端收到推送唤醒时发送一个信号给后端。
    后端发送推送后等待信号, 如果一定时间内没收到这个信号,则认为客户端不在线, 被叫方没网或者应用被卸载。
    然后提示主叫方拨打的号码无法接通,这样总比主叫方一直等着要好吧
        9
    skylancer   8 天前
    @fvckDaybyte2 你换个思路啊,我没记错 voip 推送是可以带参数唤起 App 的,等收到回应再播放彩铃给呼叫方,没收到回应就看你想怎么说了
        10
    fvckDaybyte2   7 天前
    @skylancer 现在就是这个机制,和你说的一模一样……
        11
    fvckDaybyte2   7 天前
    @finab 如果网络不好 pushkit 会延时 10 秒以上甚至 20 秒,就是指这段时间的静音。如果能预先知道已经卸载,则完全可以避免。如果这次推送没响应,不知道对方是关机 /网络不好还是卸载,下次还是无法避免这 20 秒静音,无从判断,总不能上机器学习吧……
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2226 人在线   最高记录 5043   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 17ms · UTC 15:51 · PVG 23:51 · LAX 08:51 · JFK 11:51
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1