let socket async function skevent(event, params) { let msgtype = params[0] || '' params = params.slice(1) let handled = false if (msgtype == 'notify') { try { if (!data.config.skipSoundNotifications) { let el = document.getElementById('alarm') el.muted = false el.currentTime = 0; el.play() } } catch (ex) { } reloadNotifications() } else if (data.page.event) { handled = await exec(data.page.event, { clientOnlyProps: { type: msgtype, params, } }) } /*@deprecated if (!handled) { exec(data.config.event, { clientOnlyProps: { type: msgtype, params, }, pageOverride: 'config' }) }*/ } function socketBoot() { if (socket) { socket.disconnect() } let tenant = data.user.resolvedTenant || data.user.tenant socket = io('/' + tenant, { query: { tk: getToken() }, transports: ["polling", "websocket"] }) let map = (ioevent, event) => { socket.on(ioevent, async (...args) => { console.log("socket event", event || ioevent) skevent(event || ioevent, args) }) } map('connect') map('connect_error') map('disconnect') map('reconnect') map('reconnect_attempt') map('reconnect_error') map('reconnect_failed') socket.onAny(async (...args) => { skevent('socket', args) }) }