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