重新连接后,Pusher不会收到事件

时间:2017-02-07 18:26:48

标签: websocket real-time pusher collaboration

我正在构建具有实时更新的浏览器应用程序。

应用程序允许在线与其他人一起阅读和编辑电子表格。

但是,有些人的互联网连接很差,可能会发生断开连接。

我希望应用程序能够在重新连接互联网后更新到最新数据。

目前Pusher和应用程序正常工作:

  1. Pusher连接到服务器并接收事件。
  2. 其他人在电子表格中进行更改。
  3. 应用程序从Pusher接收这些更改,并能够在电子表格中反映出来。
  4. 有时互联网消失了。
  5. Pusher检测到此情况,自动尝试重新连接。
  6. 其他人在电子表格中进行更改。
  7. 由于没有互联网连接,应用程序无法接收这些更改。
  8. 一段时间后,例如5分钟,互联网连接似乎没问题。
  9. 现在Pusher成功重新连接到服务器。
  10. 但是,Pusher在没有互联网连接的时间段内没有收到事件(列表项#6 )。
  11. 其他人做出改变。
  12. Pusher接收事件,应用程序能够处理它们。
  13. 所以我的问题是:Pusher在自动重新连接后没有收到其他人在互联网断开连接时触发的事件。

    我使用默认的Pusher配置,私人频道,最新的稳定版本,并且不做任何魔术。

1 个答案:

答案 0 :(得分:4)

Pusher目前不提供此功能。要自己实现这一点,您必须为每个增加值的消息发送一个数字ID。您还需要在数据库中存储所有已发送消息的缓存。客户可以跟踪他们收到的最后一个ID。断开连接并重新连接后,他们可以向您的服务器发送请求,要求所有消息大于他们收到的最后一条消息ID。您的服务器应该使用与您的数据库中的查询匹配的消息进行响应。