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

2025 年 5 月 19 日
 rizon

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

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

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

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

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

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

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

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

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

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

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

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

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

© 2021 V2EX