Skip to content

Commit d8f1e6b

Browse files
committedMay 9, 2024
make params configurable
1 parent 9e2dab6 commit d8f1e6b

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed
 

‎src/y-websocket.js

+15-5
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ export class WebsocketProvider extends Observable {
245245
* @param {object} opts
246246
* @param {boolean} [opts.connect]
247247
* @param {awarenessProtocol.Awareness} [opts.awareness]
248-
* @param {Object<string,string>} [opts.params]
248+
* @param {Object<string,string>} [opts.params] specify url parameters
249249
* @param {typeof WebSocket} [opts.WebSocketPolyfill] Optionall provide a WebSocket polyfill
250250
* @param {number} [opts.resyncInterval] Request server state every `resyncInterval` milliseconds
251251
* @param {number} [opts.maxBackoffTime] Maximum amount of time to wait before trying to reconnect (we try to reconnect using exponential backoff)
@@ -265,11 +265,15 @@ export class WebsocketProvider extends Observable {
265265
while (serverUrl[serverUrl.length - 1] === '/') {
266266
serverUrl = serverUrl.slice(0, serverUrl.length - 1)
267267
}
268-
const encodedParams = url.encodeQueryParams(params)
269-
this.maxBackoffTime = maxBackoffTime
268+
this.serverUrl = serverUrl
270269
this.bcChannel = serverUrl + '/' + roomname
271-
this.url = serverUrl + '/' + roomname +
272-
(encodedParams.length === 0 ? '' : '?' + encodedParams)
270+
this.maxBackoffTime = maxBackoffTime
271+
/**
272+
* The specified url parameters. This can be safely updated. The changed parameters will be used
273+
* when a new connection is established.
274+
* @type {Object<string,string>}
275+
*/
276+
this.params = params
273277
this.roomname = roomname
274278
this.doc = doc
275279
this._WS = WebSocketPolyfill
@@ -378,6 +382,12 @@ export class WebsocketProvider extends Observable {
378382
}
379383
}
380384

385+
get url () {
386+
const encodedParams = url.encodeQueryParams(this.params)
387+
return this.serverUrl + '/' + this.roomname +
388+
(encodedParams.length === 0 ? '' : '?' + encodedParams)
389+
}
390+
381391
/**
382392
* @type {boolean}
383393
*/

0 commit comments

Comments
 (0)
Please sign in to comment.