@@ -245,7 +245,7 @@ export class WebsocketProvider extends Observable {
245
245
* @param {object } opts
246
246
* @param {boolean } [opts.connect]
247
247
* @param {awarenessProtocol.Awareness } [opts.awareness]
248
- * @param {Object<string,string> } [opts.params]
248
+ * @param {Object<string,string> } [opts.params] specify url parameters
249
249
* @param {typeof WebSocket } [opts.WebSocketPolyfill] Optionall provide a WebSocket polyfill
250
250
* @param {number } [opts.resyncInterval] Request server state every `resyncInterval` milliseconds
251
251
* @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 {
265
265
while ( serverUrl [ serverUrl . length - 1 ] === '/' ) {
266
266
serverUrl = serverUrl . slice ( 0 , serverUrl . length - 1 )
267
267
}
268
- const encodedParams = url . encodeQueryParams ( params )
269
- this . maxBackoffTime = maxBackoffTime
268
+ this . serverUrl = serverUrl
270
269
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
273
277
this . roomname = roomname
274
278
this . doc = doc
275
279
this . _WS = WebSocketPolyfill
@@ -378,6 +382,12 @@ export class WebsocketProvider extends Observable {
378
382
}
379
383
}
380
384
385
+ get url ( ) {
386
+ const encodedParams = url . encodeQueryParams ( this . params )
387
+ return this . serverUrl + '/' + this . roomname +
388
+ ( encodedParams . length === 0 ? '' : '?' + encodedParams )
389
+ }
390
+
381
391
/**
382
392
* @type {boolean }
383
393
*/
0 commit comments