Установление соединения с Pusher только при необходимости в приложении Laravel - Vue js с использованием Echo - PullRequest
1 голос
/ 04 апреля 2020

Я разрабатываю MPA с Vue. js в качестве внешнего интерфейса и Laravel в качестве внутреннего. Мне нужны функции реального времени только на одной странице (один Vue js компонент). Я следовал за laravel документацией , и у меня есть события, трансляция, Эхо и Пушер - все на месте и работают хорошо. Моя проблема в эффективности. У меня для Pusher.logToConsole установлено значение true, и я заметил, что когда я загружаю любую страницу в свое приложение, он фактически запускает экземпляр Pusher и устанавливает соединение. Я хочу, чтобы это происходило только в компоненте vue, который использует функции реального времени.

Этот код относится к Pusher / Echo в моем bootstrap. js:

import Echo from 'laravel-echo';

const client = require('pusher-js');

 Pusher.logToConsole = true;

 window.Echo = new Echo({
     broadcaster: 'pusher',
     key: 'my key is here',
     cluster: 'eu',
     clinet: client,
 });

Это код в компоненте Vuejs с функциональностью в реальном времени:

   Echo.private('my-channel')
        .listen('.App\\Events\\myEvent', (e) => {

            console.log(e);


        });   

Есть ли способ создать экземпляр Pusher и установить sh соединение только в компоненте Vue интерес?

...