Use url without query params for broadcastchannel. fixes #12
This commit is contained in:
parent
2e3a1c736d
commit
15a9c99833
@ -177,6 +177,7 @@ export class WebsocketProvider extends Observable {
|
||||
serverUrl = serverUrl.slice(0, serverUrl.length - 1)
|
||||
}
|
||||
const encodedParams = url.encodeQueryParams(params)
|
||||
this.bcChannel = serverUrl + '/' + roomname
|
||||
this.url = serverUrl + '/' + roomname + (encodedParams.length === 0 ? '' : '?' + encodedParams)
|
||||
this.roomname = roomname
|
||||
this.doc = doc
|
||||
@ -212,7 +213,7 @@ export class WebsocketProvider extends Observable {
|
||||
this.mux(() => {
|
||||
const encoder = readMessage(this, new Uint8Array(data), false)
|
||||
if (encoding.length(encoder) > 1) {
|
||||
bc.publish(this.url, encoding.toUint8Array(encoder))
|
||||
bc.publish(this.bcChannel, encoding.toUint8Array(encoder))
|
||||
}
|
||||
})
|
||||
}
|
||||
@ -277,7 +278,7 @@ export class WebsocketProvider extends Observable {
|
||||
}
|
||||
connectBc () {
|
||||
if (!this.bcconnected) {
|
||||
bc.subscribe(this.url, this._bcSubscriber)
|
||||
bc.subscribe(this.bcChannel, this._bcSubscriber)
|
||||
this.bcconnected = true
|
||||
}
|
||||
// send sync step1 to bc
|
||||
@ -286,21 +287,21 @@ export class WebsocketProvider extends Observable {
|
||||
const encoderSync = encoding.createEncoder()
|
||||
encoding.writeVarUint(encoderSync, messageSync)
|
||||
syncProtocol.writeSyncStep1(encoderSync, this.doc)
|
||||
bc.publish(this.url, encoding.toUint8Array(encoderSync))
|
||||
bc.publish(this.bcChannel, encoding.toUint8Array(encoderSync))
|
||||
// broadcast local state
|
||||
const encoderState = encoding.createEncoder()
|
||||
encoding.writeVarUint(encoderState, messageSync)
|
||||
syncProtocol.writeSyncStep2(encoderState, this.doc)
|
||||
bc.publish(this.url, encoding.toUint8Array(encoderState))
|
||||
bc.publish(this.bcChannel, encoding.toUint8Array(encoderState))
|
||||
// write queryAwareness
|
||||
const encoderAwarenessQuery = encoding.createEncoder()
|
||||
encoding.writeVarUint(encoderAwarenessQuery, messageQueryAwareness)
|
||||
bc.publish(this.url, encoding.toUint8Array(encoderAwarenessQuery))
|
||||
bc.publish(this.bcChannel, encoding.toUint8Array(encoderAwarenessQuery))
|
||||
// broadcast local awareness state
|
||||
const encoderAwarenessState = encoding.createEncoder()
|
||||
encoding.writeVarUint(encoderAwarenessState, messageAwareness)
|
||||
encoding.writeVarUint8Array(encoderAwarenessState, awarenessProtocol.encodeAwarenessUpdate(this.awareness, [this.doc.clientID]))
|
||||
bc.publish(this.url, encoding.toUint8Array(encoderAwarenessState))
|
||||
bc.publish(this.bcChannel, encoding.toUint8Array(encoderAwarenessState))
|
||||
})
|
||||
}
|
||||
disconnectBc () {
|
||||
@ -310,7 +311,7 @@ export class WebsocketProvider extends Observable {
|
||||
encoding.writeVarUint8Array(encoder, awarenessProtocol.encodeAwarenessUpdate(this.awareness, [this.doc.clientID], new Map()))
|
||||
broadcastMessage(this, encoding.toUint8Array(encoder))
|
||||
if (this.bcconnected) {
|
||||
bc.unsubscribe(this.url, this._bcSubscriber)
|
||||
bc.unsubscribe(this.bcChannel, this._bcSubscriber)
|
||||
this.bcconnected = false
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user