38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
|
|
/**
|
|
* Echo exposes an expressive API for subscribing to channels and listening
|
|
* for events that are broadcast by Laravel. Echo and event broadcasting
|
|
* allows your team to easily build robust real-time web applications.
|
|
*/
|
|
|
|
|
|
import Echo from 'laravel-echo';
|
|
|
|
window.Pusher = require('pusher-js');
|
|
|
|
// Get CSRF token from meta tag
|
|
const csrfToken = document.querySelector('meta[name="csrf-token"]')?.getAttribute('content');
|
|
|
|
// Get current locale from URL path (e.g., /en/, /nl/, etc.)
|
|
const locale = window.location.pathname.split('/')[1] || 'en';
|
|
|
|
window.Echo = new Echo({
|
|
broadcaster: 'reverb',
|
|
key: import.meta.env.VITE_REVERB_APP_KEY,
|
|
wsHost: import.meta.env.VITE_REVERB_HOST,
|
|
wsPort: import.meta.env.VITE_REVERB_PORT ?? 80,
|
|
wssPort: import.meta.env.VITE_REVERB_PORT ?? 443,
|
|
wsPath: import.meta.env.VITE_REVERB_PATH ?? "/",
|
|
forceTLS: (import.meta.env.VITE_REVERB_SCHEME ?? "https") === "https",
|
|
enabledTransports: ['ws', 'wss'],
|
|
authEndpoint: `/${locale}/broadcasting/auth`,
|
|
auth: {
|
|
headers: {
|
|
'X-CSRF-TOKEN': csrfToken,
|
|
'Accept': 'application/json',
|
|
},
|
|
},
|
|
});
|
|
|
|
|