laravel - Laravel Echo / Socket.io 在睡眠后保持连接活跃
问题描述
我在后端(使用默认配置)和Vue前端使用laravel echo server
+ 。Redis
laravel-echo
socket.io-client
这是我的用例:每当提交新订单时,我都会使用laravel-echo
新提交的订单来更新订单列表。
只要连接的设备(即 iPhone)处于唤醒状态,一切正常。
我的问题是在设备处于睡眠状态时提交新订单的情况。唤醒设备后,订单列表不会更新(如果在唤醒设备后提交了新订单 - 列表会按应有的方式更新)。
如何使用设备休眠时提交的新订单更新列表?
解决方案
This is what I got so far. Eager to see if there is a better idea:
export default {
async beforeMount () {
await this.updateOrders()
const vm = this
Echo.channel('update-orders-channel')
.listen('NewOrderEvent', async (e) => {
await vm.updateOrders(e)
})
Echo.connector.socket.on('reconnecting', async () => {
await vm.updateOrders()
})
}
}