javascript - Laravel 回显 : is it possible to listen to all events instead of a specific one?

标签 javascript laravel-echo

我在我的项目中实现了 Laravel 广播。一切正常,但我想知道是否可以收听所有事件而不仅仅是特定事件?

目前我的前端有这个代码:

window.Echo.channel('office-dashboard')
  .listen('CompanyUpdated', (e) => {
    console.log(e.company);
  });
  .listen('CompanyDeleted', (e) => {
    console.log(e.company);
  });

我想以这样一种方式构建我的事件,以便我可以捕获它到底是什么类型的事件,以及执行了什么样的 Action 。但是,如果我仍然必须像现在这样专门聆听每个事件,那将毫无用处。我想收听 channel 中的所有事件,这可能吗?

我读了docs ,但那些只谈论如何收听特定事件。

最佳答案

我遇到了同样的情况。我认为您需要收听各个 channel 。但是您可以像下面这样编写更简洁的代码。

    const channel = window.Echo.channel('office-dashboard')

    const eventsTolisten = [
      'CompanyUpdated',
      'CompanyDeleted',
    ]

    eventsTolisten.forEach(event => {
      channel.listen(event, e => {
        this.handleSocketEvents({
          name: event,
          data: e.data
        })
      })
    })

关于javascript - Laravel 回显 : is it possible to listen to all events instead of a specific one?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46604807/

相关文章:

javascript - 如何使用jquery读取json格式的数据

javascript - 如何将 div 放在 p 的特定行上?

reactjs - Redux saga 未在实时套接字上调度操作

php - Laravel laravel-echo-server未收到消息(聊天)

javascript - img src 属性为空时返回页面的 url

javascript - 排序时的 SlickGrid 选择问题

laravel - 使用socket.io和Laravel Echo时如何保护私有(private) channel ?

redis - laravel 回显服务器,redis

php - 当用户离开 Laravel-Echo 中的 channel 时,有没有办法触发后端事件?

javascript - 将 jQuery 偏移量从一个元素复制到另一个元素会将它们放在不同的位置