47 lines
1.0 KiB
TypeScript
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;
|