0

我想在我的 Web 应用程序中实现语音呼叫的实时推送通知。我分析了 WebSockets、Long-polling、Firebase 和 Atmosphere。Firebase 和 Atmosphere 都不可靠,对于 Atmosphere,有时推送无法到达浏览器;对于 Firebase,当令牌过期时,不会调用 onTokenRefresh 方法,因为浏览器端没有收到任何通知。

是否有任何其他可用的解决方案可以提供网络推送通知,如谷歌视频群聊或 Facebook 或 WhatsApp 通话?

4

1 回答 1

1

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

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

在任何情况下都使用安全连接。无论您使用什么协议,它都应该有助于 TLS。

于 2017-02-14T05:58:46.327 回答