📡 Adds reactive data from socket connection

This commit is contained in:
Rune Harlyk
2023-05-11 22:25:33 +02:00
parent 8cf4c09543
commit 531945397c
5 changed files with 98 additions and 40 deletions
+10
View File
@@ -4,6 +4,8 @@ export type WebSocketStatus = 'OPEN' | 'CONNECTING' | 'CLOSED'
export const isConnected = writable(false)
export const data = writable(new Float32Array(13))
export const status:Writable<WebSocketStatus> = writable('CLOSED')
export const socket = writable(null)
@@ -11,8 +13,10 @@ export const socket = writable(null)
export const connect = (url:string) => {
status.set('CONNECTING')
let _socket = new WebSocket(url);
_socket.binaryType = "arraybuffer";
_socket.onopen = _connected;
_socket.onclose = _disconnected;
_socket.onmessage = _message;
socket.set(_socket)
}
@@ -26,3 +30,9 @@ const _disconnected = () => {
isConnected.set(false)
}
const _message = (event) => {
if (event.data instanceof ArrayBuffer) {
let buffer = new Uint8Array(event.data);
data.set(new Float32Array(buffer.buffer));
}
}