iOS 上的 IM 用怎样的方案比较好?

2015-10-13 17:36:12 +08:00
 sherlocktheplant
我们公司现在做自己开发应用内的 IM 系统 android 方面已经开发完成 服务器是 mqtt 协议 数据格式为自己定义的 JSON 格式 有一个随机启动的后台服务和 Activity 交互
但是 iOS 比较麻烦 不能跑后台进程 我也不愿意用“无限循环播放空音频”这么 low 的手段

那么我能想到的方案只有两种:
1. 全部改用 Apple Push Notification Service 或者 PushKit (因为我们有语音通话 VOIP 功能)
2. 应用处于后台时使用 Apple Push Notification Service 或者 PushKit
应用处于前台时使用 MQTT 协议

请问一下各位觉得那种好一点 为什么 或者有没有更好的方案?
2670 次点击
所在节点    问与答
7 条回复
sherlocktheplant
2015-10-13 18:03:49 +08:00
吃饭去了 回来再看看有人回复没有
hging
2015-10-13 18:06:41 +08:00
全部改 apple push 吧. 这样统一. 要不你还要判断客户端是不是在线- -
sherlocktheplant
2015-10-13 20:20:54 +08:00
@hging
mqtt 自带是有心跳协议的 但是推送的话就没有 但是如果不能跑后台服务 我也不知道怎么传心跳了
hging
2015-10-14 10:55:47 +08:00
@sherlocktheplant 不能跑后台心跳就断了么. 就当做离线了. 然后用 Apple 的推送就行. 有心跳就在线. 就走 MQTT
sherlocktheplant
2015-10-14 11:04:07 +08:00
@hging 那个确实没有办法 不知道 qq 是怎么实现的在线状态的问题 微信没有在线状态 所以不存在这个问题 不过我们的 im 也并没有在线状态的要求
hging
2015-10-14 11:17:05 +08:00
@sherlocktheplant 就是你程序在线肯定就有 MQTT 发心跳嘛 你服务器端检测这个心跳 然后如果某个用户突然没心跳就证明客户端离线 然后就调用 Apple 的推送推送提醒 然后打开客户端不就又有心跳了- -
xmliu
2015-11-02 10:18:57 +08:00
太折腾了,推荐楼主使用 IM 云服务
利益相关者:@网易云信
哈哈哈

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/227723

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX