UNPKG

@uisap/core

Version:

A modular Fastify-based framework inspired by Laravel

39 lines (32 loc) 1.07 kB
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); } }