哪种最可靠的网络推送通知技术?

Which most reliable technology for push notification for the web?

我想在我的网络应用程序中为语音呼叫实施实时推送通知。我已经分析了 WebSockets、长轮询、Firebase 和 Atmosphere。 Firebase和Atmosphere都不可靠,对于Atmosphere,有时push不到浏览器,对于Firebase,当token过期时,不会调用onTokenRefresh方法,导致浏览器端没有收到通知。

是否有任何其他解决方案可以提供网络推送通知,例如 google 环聊或 Facebook 或 WhatsApp 呼叫?

我会说这取决于您的服务器端。如果您的服务器能够维持 TCP 连接并且在某种程度上是有状态的,那么 WebSocket 是标准的方法,因为它是 IETF RFC。但是请记住两点:

  1. 并非所有客户端都支持 WebSocket,因此它可能会派上用场,例如 long-polling ajax 等。有许多库是为特定场景构建的,例如 socket.io、SignalR 等
  2. 没有 Internet 协议可以保证您的 push-notification 到达客户端,因为连接可能总是被他们关闭或由于连接不良。我的建议是:让客户向您发送每个 push-notification 的确认。如果您没有得到确认,则将消息视为未收到,并在客户端下次连接时重试。 (你需要某种数据库)

无论如何都要使用安全连接。无论您使用什么协议,它都应该促进 TLS。