问题描述
我有一个实时仪表板,可以显示电子竞技比赛的数据。数据进入通道 csgo
上的低谷推送器,事件名称为 match-data-csgo
。
在有新事件时接收数据没有问题,但我正在寻找一种方法来获取最后一个事件的值。他们在事件中传递一个 json 作为值,从这个 json 我可以用内容填充我的页面。
我正在使用 Laravel、Laravel Echo 和 LiveWire。这是用于检测新事件的代码:
window.addEventListener('DOMContentLoaded',function () {
Echo.channel('csgo')
.listen('.match-data-csgo',(e) => {
window.livewire.emit('newCsgoData',e)
});
})
通过将 (e) 发送到 livewire 中的 newCsgoData 函数,我可以处理所有数据。
我需要有 pusher 最后一个事件的 json 值,这样我才能在页面上预加载它,因为现在只要 pushere 没有收到新事件,页面就是空白的。
解决方法
Pusher 不存储任何事件或事件数据,因此您需要将事件数据存储在服务器上并在页面加载时检索这些数据。有几种常见的方法可以实现这一点,例如在页面加载时发送一个包含最新事件的 JSON 文件,或者在您的服务器上公开一个端点,将最新事件发送给请求者,允许客户端在加载期间进行请求填充数据。