[求助] 手机端 app 实时接收一个服务端事件的优雅方案

117 天前
 rizon

手机端的 app ( ios 、android )。
需求是想要尽可能实时的接收服务端主动发起的一个事件,不知道有什么方案可以做。

最简单的是轮询,但是几秒钟轮训一下总觉得太不优雅。

再者就是 websocket 的,但是这样服务端要维护所有的客户端的长链接,对服务端架构要求和成本变高了。

然后我就不知道有什么好的方案了,求大佬们指导。

说到这,我也好奇,打车、外卖、共享单车这类产品他们是怎么做的实时刷新数据的?

2195 次点击
所在节点    程序员
16 条回复
xnode
117 天前
接入 第三方推送或者厂家的推送,或者使用 sse 自建
CodingIran
117 天前
移动端推送需要用户的授权,通常不会作为稳定的实时接收服务端消息的方案
WebSocket 又被你拒了
常用的只剩下 MQTT 和 Server-Sent Events(SSE) 了
vincentWdp
117 天前
还是 websocket, 但是用这个: https://www.phoenixframework.org/
lucasdev
117 天前
想要实时肯定是要长连接的,websocket 没那么不能接受。

可以看看极光推送,友盟 U-Push 的文档。
rizon
117 天前
@lucasdev 这是用来推送系统通知的吧。我是需要客户端内部接收通知用的。 客户端有 android 、ios 还有 unity 的
cornorj6
117 天前
MQTT
calmWei
117 天前
SSE ,本质上也是一种轮训
rizon
117 天前
@cornorj6 是的,刚才调研了一下,目前感觉 MQTT 比较合适。正在找一个合适的 MQTT 托管服务
lucasdev
117 天前
@rizon #5 除了系统通知,这些平台也支持自定义消息,不显示在通知栏,而是自己注册回调在代码里来处理。
sunny352787
117 天前
什么类型的呢?公司的就直接用钉钉、企业微信、飞书的机器人呗
sunny352787
117 天前
@sunny352787 哦哦理解错了,忽略我说的...
lqbk
117 天前
你这种 App 场景 如果消息到达率是关键指标 用 im 方案是最好,拓展性强、能接入系统级的推送服务、定位消息触达方便。

就是得花钱。
orcinus
117 天前
okkkk
117 天前
我倒是觉得长链接除了看起来不太优雅,对于资源有限,试错成本有限,时间有限的情况下。是最优雅的解决方案。低学习成本和低复杂度,蛮优雅的。

所以还是要看给你的时间和资源是否足够你折腾,否则就长链接。性能瓶颈了再考虑优化的事。
prosgtsr
117 天前
直播公司,用的 xmpp
不过这是很多年前就用的了,现在你尽可以试试 mqtt 啥的呗。
Andrue
117 天前
FOSS 软件领域有 unipush 这类项目,你可以参考下

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

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

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

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

© 2021 V2EX