in experimental/sdk/y-azure-webpubsub/src/WebPubSubSyncHost.ts [101:137]
async start() {
const url = await this.negotiate(this.topic);
const conn = new this._polyfill(url, "json.webpubsub.azure.v1");
const server = this;
const group = this.topic;
conn.onmessage = (e) => {
const event: Message = JSON.parse(e.data.toString());
if (event.type === "message" && event.from === "group") {
switch (event.data.t) {
case MessageDataType.Init:
server.onClientInit(group, event.data);
server.onClientSync(group, event.data);
return;
case MessageDataType.Sync:
server.onClientSync(group, event.data);
return;
case MessageDataType.Awareness:
server.onAwareness(group, event.data);
return;
}
}
};
conn.onopen = () => {
conn.send(
JSON.stringify({
type: MessageType.JoinGroup,
group: `${group}.host`,
})
);
};
this._conn = conn;
}