@uisap/core
Version:
A modular Fastify-based framework inspired by Laravel
39 lines (32 loc) • 1.07 kB
JavaScript
export class Broadcast {
constructor(fastify) {
this.fastify = fastify;
this.manager = fastify.container.make("broadcastManager");
}
async toRoom(channel, event, data) {
const driver = await this.manager.driver();
const callbackResult = this.manager.matchChannel(channel, { event, data });
if (callbackResult) {
return driver.toRoom(channel, event, callbackResult);
}
return driver.toRoom(channel, event, data);
}
async toAll(event, data) {
const driver = await this.manager.driver();
return driver.toAll(event, data);
}
async joinRoom(socket, channel) {
const driver = await this.manager.driver();
return driver.joinRoom(socket, channel);
}
async queueToRoom(channel, event, data, queueName = "broadcast") {
const driver = await this.manager.driver();
return driver.queueToRoom(channel, event, data, queueName);
}
async driver(name) {
return await this.manager.driver(name);
}
async channel(pattern, callback) {
return await this.manager.channel(pattern, callback);
}
}