【发布时间】:2020-05-13 03:29:33
【问题描述】:
我正在开发一个 web 应用程序,目前我的应用程序服务器使用服务器发送事件来保持与用户的连接,以便有效地将新消息和其他事件等内容推送给他们,而无需他们不断地轮询服务器来询问。
我正在寻找一种实现推送通知的方法,这样我就可以使用Notification Web API 在用户位于单独的选项卡中,或者当他们在手机上运行并且他们有Chrome 已最小化。
经过一些研究,Google Cloud Messaging 似乎已被 Firebase Cloud Messaging 取代,这是推荐用于传递推送通知的服务。看起来它的工作原理是让用户保持与 Firebase 服务器的持久连接,并且您的个人应用服务器向 Firebase 发布请求,以便它们传递给用户。
我的问题:这是否减轻了实现和维护 SSE / WebSocket 服务器的需要?我想知道我是否不能只通过 FireBase 转发我的所有事件,并通过他们的服务将它们传递给用户。也就是说,我会从 Firebase 发送两类消息:
一个是典型的“通知”,由用户解释(例如新消息),并且需要通知 API 的本地权限。然后另一种类型是不需要通知的其他“实时”更新(例如正在编辑的消息,或“用户正在输入消息”提示)
这种事情可能/推荐,还是我的理解在某些方面存在缺陷?
【问题讨论】:
-
您能分享一下到目前为止的经验吗?我在实现 WebSockets 时遇到了麻烦,我想知道 FCM 是否可以很好地替代实时通知。我的意思不仅仅是通知弹出窗口,我想用它作为 WebSockets 的完全替代品
-
@Luciano 绝对使用 websockets。 FCM 的消息通常会出现很大的延迟(10 分钟)
-
@RyanPeschel 你是对的,我已经尝试过 FCM 并且时间响应是不可预测的,所以我不得不回到 websockets。至少 FCM 不是一个好的选择,不确定其他替代方案,例如 Pusher 或 Sockets.io 服务
标签: javascript android firebase web-applications websocket