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