| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- window.ws = null
- export function checkWebsocketConnection () {
- if (window.ws === null || window.ws.readyState === 3) {
- reconnectWebsocket()
- }
- }
- function reconnectWebsocket () {
- window.websocketAvailable = false
- let proto = 'ws:'
- if (window.location.protocol === 'https:') {
- proto = 'wss:'
- }
- const websocketConnectionUrl = proto + window.location.host + '/websocket'
- const ws = window.ws = new WebSocket(websocketConnectionUrl)
- ws.addEventListener('open', websocketOnOpen)
- ws.addEventListener('message', websocketOnMessage)
- ws.addEventListener('error', websocketOnError)
- ws.addEventListener('close', websocketOnClose)
- }
- function websocketOnOpen (evt) {
- window.websocketAvailable = true
- window.ws.send('monitor')
- window.refreshLoop()
- }
- function websocketOnMessage (msg) {
- // FIXME check msg status is OK
- const j = JSON.parse(msg.data)
- const e = new Event(j.type)
- e.payload = j.payload
- switch (j.type) {
- case 'EventConfigChanged':
- case 'EventExecutionFinished':
- window.dispatchEvent(e)
- break
- default:
- window.showBigError('Unknown message type from server: ' + j.type)
- }
- }
- function websocketOnError (err) {
- window.websocketAvailable = false
- window.refreshLoop()
- console.error(err)
- }
- function websocketOnClose () {
- window.websocketAvailable = false
- }
|