braid/src/channels/channelBase.ts
2019-03-11 14:35:33 -04:00

47 lines
1.0 KiB
TypeScript

import ClientBase from '../clients/clientBase';
import MHSClient from '../clients/sites/mhsClient';
class ChannelBase {
id: string;
clients: MHSClient[]|ClientBase[] = [];
constructor(id: string) {
this.id = id;
console.log('channel created');
}
addClient(client: MHSClient|ClientBase) {
console.log(client.data)
if (this.clientExists(client.id)) {
console.log('client already exits in channel');
} else {
this.clients.push(client);
console.log('added client to channel');
}
}
clientExists(id: number) {
for (let client of this.clients) {
if (client.id == id) {
return client;
}
}
return null;
}
broadcastMessage(from: ClientBase|MHSClient|null, message: string) {
for (let client of this.clients) {
if (client != from) {
client.ws.send(message);
console.log(`sent to ${client.id}: %s`, message);
console.log(message);
} else {
console.log('client is same as sender');
}
}
}
};
export default ChannelBase;