braid/dist/server/channels/channelBase.js

44 lines
1.5 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var logger = require('../logger');
class ChannelBase {
constructor(id) {
this.clients = [];
this.id = id;
logger.accessLog.info('Channel Created', { channelId: id });
}
addClient(client) {
if (this.clientExists(client.id)) {
logger.errorLog.info('Client already exits in channel', { channelId: this.id, clientId: client.id });
return { 'status': 'notice', 'message': 'client aleady exists in channel' };
}
else {
this.clients.push(client);
logger.accessLog.info('Added client to channel', { channelId: this.id, clientId: client.id });
return { 'status': 'success', 'message': 'client added' };
}
}
clientExists(id) {
for (let client of this.clients) {
if (client.id == id) {
return client;
}
}
return null;
}
broadcastMessage(from, message) {
for (let client of this.clients) {
if (client != from) {
client.ws.send(message);
logger.accessLog.info(`sent to ${client.id}: `, { message: message });
}
else {
logger.accessLog.info(`client is same as sender: ${client.id} - `, { message: message });
}
}
return { 'status': 'success', 'message': `message broadcast complete` };
}
}
;
exports.default = ChannelBase;
//# sourceMappingURL=channelBase.js.map