Как получить статус соединения / другие события в laravel Echo - PullRequest
0 голосов
/ 31 января 2019

Я разработал панель управления, которая получает живые уведомления через пользовательские события.То, чего я хотел бы достичь, это возможность переключения между каналами.Я использую 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, если я в данный момент подключен, и если да, покинуть канал и подключиться к новой команде.

Кто-нибудь знает, как этого добиться?

1 Ответ

0 голосов
/ 16 мая 2019

Вот как вы можете прослушивать события «соединение», «отключение» и «переподключение».

Подключение:

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;');
});
...