diff --git a/src/y-websocket.js b/src/y-websocket.js index 38465b3..9bb95f2 100644 --- a/src/y-websocket.js +++ b/src/y-websocket.js @@ -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 } }