Allow supply of WebSocket constructor

This commit is contained in:
Tony Garnock-Jones 2023-09-29 19:31:43 +02:00
parent 2dc7fc3e9c
commit 06bf888bd8
1 changed files with 2 additions and 2 deletions

View File

@ -33,7 +33,7 @@ type TransportState = {
peer: Ref, peer: Ref,
}; };
export function boot(ds: Ref, debug: boolean = false) { export function boot(ds: Ref, debug: boolean = false, WebSocketConstructor?: typeof WebSocket) {
spawn named 'transportConnector' { spawn named 'transportConnector' {
at ds { at ds {
during Observe({ "pattern": :pattern G.TransportConnection({ during Observe({ "pattern": :pattern G.TransportConnection({
@ -107,7 +107,7 @@ export function boot(ds: Ref, debug: boolean = false) {
setTimeout(() => facet.turn(() => { stop {} }), 10000); setTimeout(() => facet.turn(() => { stop {} }), 10000);
} }
try { try {
const ws = new WebSocket(addr.url); const ws = new (WebSocketConstructor ?? WebSocket)(addr.url);
ws.binaryType = 'arraybuffer'; ws.binaryType = 'arraybuffer';
ws.onopen = () => facet.turn(() => succeed(ws)); ws.onopen = () => facet.turn(() => succeed(ws));
ws.onclose = () => facet.turn(() => fail(Symbol.for('closed'))); ws.onclose = () => facet.turn(() => fail(Symbol.for('closed')));