gpt4 book ai didi

push-notification - 推送通知还是 Socket.io?或者两者都?

转载 作者:行者123 更新时间:2023-12-03 07:06:05 26 4
gpt4 key购买 nike

我正在开发一个适用于网络、Android 和 iOS 的聊天系统。通过研究,我发现 GCM 和 APNS 处理推送通知的方式存在差异。

如果我通过 GCM 向 Android 设备发送推送通知,该设备能够决定是否通知用户,或者如果没有必要,则不会告诉用户。它可能只是数据更新,不需要通知用户。另一方面,如果我通过 APNS 向 iOS 设备发送推送通知,则该设备无法决定是否显示该通知,因此必须显示该通知。此外,当 iOS 设备收到通知时,通知数据必须包含将向用户显示的字符串。在 Android 上,设备可以生成该字符串。

所以,我想创建一个对于 iOS 和 Android 以及网站(基于 API)都以相同方式工作的系统。就在那时我发现了 Socket.io。 Socket.io 让我可以自由地将数据发送到设备(无论是 iOS 还是 Android),以便设备决定是否显示所做的更改(可能是用户更新、新消息、邀请) ,或许多其他“事件”)。但是,通过研究,我发现了使用 Socket.io 的一些缺点。设备必须连接到套接字,以便信息在客户端和服务器之间流动,但现实世界中的智能手机始终会连接和断开到不同的网络,这会破坏套接字连接。此外,通过打开连接,在后台,服务器和客户端之间会进行乒乓操作,以验证连接是否仍然打开,最终会消耗大量数据(在我的国家,我们为使用的每一兆数据付费) ,我们还没有固定费率)以及电池生命周期。我不确定这种消耗是否很大。

在 Web 端,它必须与 Socket.io 配合使用,所以这根本不是问题。

最后,在了解了两种选择的优缺点后,我发现我可以混合使用这两种选择,这可能最终成为我的最佳选择。例如,当应用程序打开时,它使用 Socket.io,当应用程序关闭时,它使用 APNS 或 GCM(取决于设备操作系统)。但是,这是一个好的做法吗?或者只使用一种溶液而不是混合两种溶液会更好吗?为什么?

非常感谢您花时间阅读本文,更感谢您的回答。

最佳答案

您准确地列出了优点和缺点。使用两者会给您带来更多的维护工作,也带来更多的复杂性,但会给您带来您所追求的灵 active 。它将归结为您的要求。

此外,您可能会发现在 iOS 后台进程中打开 socket.io 连接会很麻烦。 iOS 对于后台运行的任务的限制比 Android 严格得多。

关于push-notification - 推送通知还是 Socket.io?或者两者都?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35637353/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com