diff --git a/src/puter-js/src/modules/Peer.js b/src/puter-js/src/modules/Peer.js index d63af5fa7..113025e81 100644 --- a/src/puter-js/src/modules/Peer.js +++ b/src/puter-js/src/modules/Peer.js @@ -54,7 +54,7 @@ class PuterPeerServer extends EventTarget { this.#wsconn = new WebSocket(peerConfig.signallerUrl); } - async start () { + async start(options = {}) { await new Promise((resolve, reject) => { this.#wsconn.onopen = resolve; this.#wsconn.onerror = reject; @@ -77,6 +77,7 @@ class PuterPeerServer extends EventTarget { server: { create: { authToken: this.#peerConfig.authToken, + port: options.port, }, }, }), @@ -223,7 +224,7 @@ class PuterPeerConnection extends EventTarget { } } - async connect (invitecode) { + async connect(invitecode, options = {}) { this.#wsconn = new WebSocket(this.#peerConfig.signallerUrl); await new Promise((resolve, reject) => { this.#wsconn.onopen = resolve; @@ -245,6 +246,7 @@ class PuterPeerConnection extends EventTarget { connect: { authToken: this.#peerConfig.authToken, invitecode, + port: options.port, }, }, }), @@ -404,8 +406,7 @@ class Peer { return; } - const { iceServers, ttl, fallbackIce } = await response.json(); - this.#fallbackIceServers = fallbackIce; + const { iceServers, ttl } = await response.json(); this.#turnServers = iceServers; this.#turnTTL = ttl; this.#turnStartedAt = Date.now(); @@ -417,7 +418,8 @@ class Peer { if ( ! response.ok ) { throw new Error('Failed to get signaller info from Puter.'); } - const { url } = await response.json(); + const { url, fallbackIce } = await response.json(); + this.#fallbackIceServers = fallbackIce; this.#signallerUrl = url; } @@ -456,7 +458,7 @@ class Peer { await this.#authenticateForPeerAction('create a server'); const peerConfig = await this.#resolvePeerConfig(options); const server = new PuterPeerServer(peerConfig); - await server.start(); + await server.start(options); return server; } @@ -464,7 +466,7 @@ class Peer { await this.#authenticateForPeerAction('connect to a server'); const peerConfig = await this.#resolvePeerConfig(options); const conn = new PuterPeerConnection(peerConfig); - await conn.connect(invitecode); + await conn.connect(invitecode, options); return conn; } }