Php 延迟websocket更新并稍后显示消息?

Php 延迟websocket更新并稍后显示消息?,php,laravel,pusher,vue.js,Php,Laravel,Pusher,Vue.js,我有一个应用程序,玩家基本上可以互相挑战。在某个时刻,他们的挑战完成了,我需要向他们(他们两个-有两个玩家)提供一条更新消息,比如“嘿,你赢了,得到了100500分”。反之亦然——“嘿,你疯了” 我使用websockets和pusher来处理实时更新,这在玩家“在线”时非常有效。但如果不是呢?对于我来说,我仍然可以使用pusher处理事件,而不是仅仅显示消息,我可以将其存储到db to tablechallenge\u notifications,带有字段messages和seen=0。没关系,

我有一个应用程序,玩家基本上可以互相挑战。在某个时刻,他们的挑战完成了,我需要向他们(他们两个-有两个玩家)提供一条更新消息,比如“嘿,你赢了,得到了100500分”。反之亦然——“嘿,你疯了”

我使用websockets和pusher来处理实时更新,这在玩家“在线”时非常有效。但如果不是呢?对于我来说,我仍然可以使用pusher处理事件,而不是仅仅显示消息,我可以将其存储到db to table
challenge\u notifications
,带有字段
messages
seen=0
。没关系,但是当玩家下次上网时,最好的方式是什么?我不想让ajax请求在每个页面上进行加载检查,以查看是否有任何用户未看到的通知

我可能需要在所有挂起的通知联机时只获取一次


我的后端使用了
Laravel 5

Pusher博客上最近有一篇文章,关于如何检测用户是否在线或未使用Pusher HTTP API:

该示例使用SendGrid,但您可以将更新存储到数据库,向他们发送推送通知、SMS等

那么,当玩家下次上网时,向他展示这一点的最佳方式是什么

我想“上网”有两种形式:

  • 用户已不在站点上,必须导航到该站点。在这种情况下,当页面加载时,您可以查询数据库并直接向它们提供任何错过的通知(这似乎是最简单的解决方案)。或者,如果它适合您的应用程序体系结构,则在加载页面时发出单个AJAX请求,以获取任何错过的通知

  • 如果用户由于移动或网络连接不良而脱机。在这种情况下,您可以使用
    pusher.connection.bind('connected',function(){})绑定到
    connected
    事件
  • 总之:在正常页面呈现时(在服务器上)查询数据库中是否有任何遗漏的通知似乎是最简单的解决方案,并且不需要太多的资源使用。但如果他们不在线,也有其他的发送通知的机制(电子邮件、短信)