make params configurable

This commit is contained in:
Kevin Jahns 2024-05-09 19:57:15 +02:00
parent 9e2dab6ed4
commit d8f1e6b0e1

View File

@ -245,7 +245,7 @@ export class WebsocketProvider extends Observable {
* @param {object} opts * @param {object} opts
* @param {boolean} [opts.connect] * @param {boolean} [opts.connect]
* @param {awarenessProtocol.Awareness} [opts.awareness] * @param {awarenessProtocol.Awareness} [opts.awareness]
* @param {Object<string,string>} [opts.params] * @param {Object<string,string>} [opts.params] specify url parameters
* @param {typeof WebSocket} [opts.WebSocketPolyfill] Optionall provide a WebSocket polyfill * @param {typeof WebSocket} [opts.WebSocketPolyfill] Optionall provide a WebSocket polyfill
* @param {number} [opts.resyncInterval] Request server state every `resyncInterval` milliseconds * @param {number} [opts.resyncInterval] Request server state every `resyncInterval` milliseconds
* @param {number} [opts.maxBackoffTime] Maximum amount of time to wait before trying to reconnect (we try to reconnect using exponential backoff) * @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 {
while (serverUrl[serverUrl.length - 1] === '/') { while (serverUrl[serverUrl.length - 1] === '/') {
serverUrl = serverUrl.slice(0, serverUrl.length - 1) serverUrl = serverUrl.slice(0, serverUrl.length - 1)
} }
const encodedParams = url.encodeQueryParams(params) this.serverUrl = serverUrl
this.maxBackoffTime = maxBackoffTime
this.bcChannel = serverUrl + '/' + roomname this.bcChannel = serverUrl + '/' + roomname
this.url = serverUrl + '/' + roomname + this.maxBackoffTime = maxBackoffTime
(encodedParams.length === 0 ? '' : '?' + encodedParams) /**
* The specified url parameters. This can be safely updated. The changed parameters will be used
* when a new connection is established.
* @type {Object<string,string>}
*/
this.params = params
this.roomname = roomname this.roomname = roomname
this.doc = doc this.doc = doc
this._WS = WebSocketPolyfill this._WS = WebSocketPolyfill
@ -378,6 +382,12 @@ export class WebsocketProvider extends Observable {
} }
} }
get url () {
const encodedParams = url.encodeQueryParams(this.params)
return this.serverUrl + '/' + this.roomname +
(encodedParams.length === 0 ? '' : '?' + encodedParams)
}
/** /**
* @type {boolean} * @type {boolean}
*/ */