add option to disable broadcastchannel - closes #103
This commit is contained in:
parent
cc6df43a74
commit
3c774953ec
@ -187,8 +187,17 @@ export class WebsocketProvider extends Observable {
|
|||||||
* @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)
|
||||||
|
* @param {boolean} [opts.disableBc] Disable cross-tab BroadcastChannel communication
|
||||||
*/
|
*/
|
||||||
constructor (serverUrl, roomname, doc, { connect = true, awareness = new awarenessProtocol.Awareness(doc), params = {}, WebSocketPolyfill = WebSocket, resyncInterval = -1, maxBackoffTime = 2500 } = {}) {
|
constructor (serverUrl, roomname, doc, {
|
||||||
|
connect = true,
|
||||||
|
awareness = new awarenessProtocol.Awareness(doc),
|
||||||
|
params = {},
|
||||||
|
WebSocketPolyfill = WebSocket,
|
||||||
|
resyncInterval = -1,
|
||||||
|
maxBackoffTime = 2500,
|
||||||
|
disableBc = false
|
||||||
|
} = {}) {
|
||||||
super()
|
super()
|
||||||
// ensure that url is always ends with /
|
// ensure that url is always ends with /
|
||||||
while (serverUrl[serverUrl.length - 1] === '/') {
|
while (serverUrl[serverUrl.length - 1] === '/') {
|
||||||
@ -205,6 +214,7 @@ export class WebsocketProvider extends Observable {
|
|||||||
this.wsconnected = false
|
this.wsconnected = false
|
||||||
this.wsconnecting = false
|
this.wsconnecting = false
|
||||||
this.bcconnected = false
|
this.bcconnected = false
|
||||||
|
this.disableBc = disableBc
|
||||||
this.wsUnsuccessfulReconnects = 0
|
this.wsUnsuccessfulReconnects = 0
|
||||||
this.messageHandlers = messageHandlers.slice()
|
this.messageHandlers = messageHandlers.slice()
|
||||||
/**
|
/**
|
||||||
@ -328,6 +338,9 @@ export class WebsocketProvider extends Observable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
connectBc () {
|
connectBc () {
|
||||||
|
if (this.disableBc) {
|
||||||
|
return
|
||||||
|
}
|
||||||
if (!this.bcconnected) {
|
if (!this.bcconnected) {
|
||||||
bc.subscribe(this.bcChannel, this._bcSubscriber)
|
bc.subscribe(this.bcChannel, this._bcSubscriber)
|
||||||
this.bcconnected = true
|
this.bcconnected = true
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user