| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | let callbacks = [];let onConnectCallbacks = [];let onDisconnectCallbacks = [];let onConnectErrorCallbacks = [];export default {	ready: false,	socket: null,	getSocket: function (cb) {		if (this.ready) cb(this.socket);		else callbacks.push(cb);	},	onConnect: function(cb) {		onConnectCallbacks.push(cb);	},	onDisconnect: function(cb) {		onDisconnectCallbacks.push(cb);	},	onConnectError: function(cb) {		onConnectErrorCallbacks.push(cb);	},	removeAllListeners: function() {		Object.keys(this.socket._callbacks).forEach((id) => {			if (id.indexOf("$event:song") !== -1) {				delete this.socket._callbacks[id];			}		});	},	init: function (url) {		this.socket = window.socket = io(url);		this.socket.on('connect', () => {			// Connect			console.log("SOCKET.IO CONNECTED");			onConnectCallbacks.forEach((cb) => {				cb();			});		});		this.socket.on('disconnect', () => {			// Disconnect			console.log("SOCKET.IO DISCONNECTED");			onDisconnectCallbacks.forEach((cb) => {				cb();			});		});		this.socket.on('connect_error', () => {			// Connect error			console.log("SOCKET.IO ERROR WHILE CONNECTING");			onConnectErrorCallbacks.forEach((cb) => {				cb();			});		});		this.ready = true;		callbacks.forEach(callback => {			callback(this.socket);		});		callbacks = [];	}}
 |