Skip to content

Commit

Permalink
switch to websockets
Browse files Browse the repository at this point in the history
  • Loading branch information
acvigue committed Jul 17, 2023
1 parent 089eb37 commit 28537dc
Showing 1 changed file with 26 additions and 13 deletions.
39 changes: 26 additions & 13 deletions src/stores/tableStatus.ts
Original file line number Diff line number Diff line change
Expand Up @@ -160,22 +160,35 @@ export default defineStore('tableStatus', () => {
}

const baseURL = table.defaults.baseURL ?? ''
const _sse = new EventSource(`${baseURL}events`)

const _parseStatusEvent = (evt: Event) => {
const messageEvent = evt as MessageEvent
const data: any = JSON.parse(messageEvent.data)
_updateRaw(data)
}
function connect() {
loader.showLoader('ws', 'Establishing event loop')
const ws = new WebSocket(`${baseURL}socket`.replace('http', 'ws'))
ws.onopen = async function () {
console.log("Socket opened.")
loader.hideLoader('ws')
}

_sse.addEventListener('status', _parseStatusEvent)
_sse.addEventListener('error', () => {
console.log('An error occurred while attempting to connect.')
})
ws.onmessage = async function (e) {
const msg = await(e.data as Blob).text()
_updateRaw(JSON.parse(msg))
}

table.get('/status').then((resp) => {
_updateRaw(resp.data)
})
ws.onclose = async function (e) {
loader.showLoader('ws', 'Establishing event loop')
console.log('Socket is closed. Reconnect will be attempted in 1 second.', e.reason)
setTimeout(function () {
connect()
}, 1000)
}

ws.onerror = async function (err) {
console.error('Socket encountered error: ', err, 'Closing socket')
ws.close()
}
}

connect()

const showWiFiSetupModal = function (): Promise<void> {
return new Promise((resolve) => {
Expand Down

0 comments on commit 28537dc

Please sign in to comment.