You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
928 B
35 lines
928 B
function ws_connect() { |
|
const session_id = ls.getItem('sessionId') || '0'; |
|
const desk_id = storage.desk_id; |
|
|
|
ws = new WebSocket(`${config.ws_url}?deskId=${desk_id}&sessionId=${session_id}`); |
|
|
|
ws.addEventListener('open', on_open); |
|
ws.addEventListener('message', on_message); |
|
ws.addEventListener('error', on_error); |
|
ws.addEventListener('close', on_close); |
|
} |
|
|
|
function on_open() { |
|
clearTimeout(storage.timers.ws_reconnect); |
|
console.debug('open') |
|
} |
|
|
|
async function on_message(event) { |
|
const data = event.data; |
|
const message_data = await data.arrayBuffer(); |
|
const view = new DataView(message_data); |
|
const d = deserializer_create(message_data, view); |
|
|
|
await handle_message(d); |
|
} |
|
|
|
function on_close() { |
|
ws = null; |
|
console.debug('close'); |
|
storage.timers.ws_reconnect = setTimeout(ws_connect, config.ws_reconnect_timeout); |
|
} |
|
|
|
function on_error() { |
|
ws.close(); |
|
} |