如何在laravel Echo中获取连接状态/其他事件

时间:2019-01-31 10:33:34

标签: laravel vue.js pusher laravel-echo

我已经开发了一个仪表板,可以通过自定义事件获取实时通知。我想实现的是能够在频道之间切换。我正在使用Vue(x)作为前端。

created() {
    this.setTeam(this.$router.currentRoute.name);
    this.clearFastlanes();
    this.getSprintInfo('getSprintInfo');
    window.Echo.channel(this.getTeam)
      .listen('.jira.issue', this.jiraIssue)
      .listen('.jira.fastlane', this.jiraFastlane);
  },

这是我订阅自定义事件的主要组件。唯一的是,此组件也被另一个团队使用。所以我想将频道更改为当前团队(离开当前频道并加入新团队的频道)。我真的找不到如何在互联网上做到这一点。

这是我的联系方式:

window.Echo = new Echo({
  broadcaster: 'pusher',
  key: '29564c255fe1dae3654b',
  cluster: 'eu',
  encrypted: true,
});

因此,基本上我想问laravel echo,如果我当前已连接,是否已离开频道并连接到新团队。

有人对如何实现这一目标有任何想法吗?

2 个答案:

答案 0 :(得分:1)

用于连接:

    window.Echo.connector.pusher.connection.bind('connected', () => {
      console.log('connected');
    });

对于断开连接:

    window.Echo.connector.pusher.connection.bind('disconnected', () => {
       console.log('disconnected);
    });

答案 1 :(得分:0)

在这里,您可以侦听“连接”,“断开连接”和“重新连接”事件。

连接:

window.Echo.connector.socket.on('connect', () => {
  //your code
});

断开连接:

window.Echo.connector.socket.on('disconnect', () => {
  //your code
});

重新连接:

window.Echo.connector.socket.on('reconnecting', (attemptNumber) => {
  //your code
  console.log(`%cSocket reconnecting attempt ${attemptNumber}`, 'color:orange; font-weight:700;');
});