Я разрабатываю 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 интерес?