service-captcha/app/application/resources/volt/js/echo.js

50 lines
1.1 KiB
JavaScript

"use strict";
import Echo from 'laravel-echo';
import Pusher from 'pusher-js';
class websocket {
_echo = null;
pusher = Pusher;
callbacks = []
constructor() {
let _this = this;
axios.get('/websockets/settings')
.then(response => {
_this._echo = new Echo({
broadcaster: 'reverb',
key: response.data.key,
wsHost: response.data.wsHost,
wsPort: response.data.wsPort,
wssPort: response.data.wssPort,
forceTLS: response.data.forceTLS,
enabledTransports: ['ws', 'wss'],
});
_this.startCallbacks();
})
.catch(error => {
});
}
add(callback) {
if (this._echo !== null) {
callback(this._echo)
return ;
}
this.callbacks.push(callback);
}
startCallbacks() {
let _this = this;
this.callbacks.forEach(function(callback) {
callback(_this._echo)
});
}
}
window.websocket = new websocket();