From 74aad4a9575029621096ab9a3177e13aa38fa265 Mon Sep 17 00:00:00 2001 From: Josh Burman Date: Mon, 11 Mar 2019 16:55:44 -0400 Subject: [PATCH] properly delegate to sub classes for channels and clients --- dist/server/channelManager.js | 20 +++++++++++++----- dist/server/channelManager.js.map | 2 +- dist/server/channels/sites/mhsChannel.js | 3 ++- dist/server/channels/sites/mhsChannel.js.map | 2 +- dist/server/clientManager.js | 16 ++++++++++++-- dist/server/clientManager.js.map | 2 +- src/channelManager.ts | 21 +++++++++++++------ src/channels/sites/mhsChannel.ts | 5 +++-- src/clientManager.ts | 15 +++++++++++-- src/config/app.ts | 2 +- src/server.ts | 22 -------------------- 11 files changed, 66 insertions(+), 44 deletions(-) diff --git a/dist/server/channelManager.js b/dist/server/channelManager.js index 36fb6d3..85d7a11 100644 --- a/dist/server/channelManager.js +++ b/dist/server/channelManager.js @@ -9,17 +9,15 @@ class ChannelManager { this.channels.push(channel); } createChannel(data) { - var channel = this.channelExists(data.channel_id); + var channel = this.channelExists(data.channel); if (channel) { console.log('channel already exists'); } else { - var Channel = require(`./channels/${data.client_type}s/${data.client}channel`); - var channel = new channelBase_1.default(data.channel_id); - this.channels.push(channel); + channel = this.getChannelType(data); + channel ? this.channels.push(channel) : null; console.log('added channel to channel manager'); } - console.log(data.channel_id); } channelExists(channel_id) { for (let channel of this.channels) { @@ -39,6 +37,18 @@ class ChannelManager { console.log(`channel with id ${channel_id} does not exist.`); } } + getChannelType(data) { + try { + var Channel = require(`./channels/${data.client_type}s/${data.client}channel`); + console.log(`attempting to create channel of type ${data.client}, channel id: ${data.channel}...`); + return new Channel(data.channel); + } + catch (e) { + console.log(e); + console.log(`creating base channel`); + return new channelBase_1.default(data.channel); + } + } } ; exports.default = ChannelManager; diff --git a/dist/server/channelManager.js.map b/dist/server/channelManager.js.map index 620d258..7707af5 100644 --- a/dist/server/channelManager.js.map +++ b/dist/server/channelManager.js.map @@ -1 +1 @@ -{"version":3,"file":"channelManager.js","sourceRoot":"","sources":["../../src/channelManager.ts"],"names":[],"mappings":";;AAAA,wDAAiD;AAKjD,MAAM,cAAc;IAGlB;QAFA,aAAQ,GAA+B,EAAE,CAAC;QAGxC,4BAA4B;QAC5B,IAAI,OAAO,GAAgB,IAAI,qBAAW,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,aAAa,CAAC,IAAS;QACrB,IAAI,OAAO,GAAgC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE/E,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;SACvC;aAAM;YACL,IAAI,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;YAC/E,IAAI,OAAO,GAAgC,IAAI,qBAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC5E,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;SACjD;QAED,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,aAAa,CAAC,UAAkB;QAC9B,KAAK,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,IAAI,OAAO,CAAC,EAAE,IAAI,UAAU,EAAE;gBAC5B,OAAO,OAAO,CAAC;aAChB;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,MAA4B,EAAE,UAAkB;QACjE,IAAI,OAAO,GAAgC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE1E,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SAClC;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,kBAAkB,CAAC,CAAA;SAC7D;IACH,CAAC;CACF;AAAA,CAAC;AAEF,kBAAe,cAAc,CAAC;AAE9B,8GAA8G"} \ No newline at end of file +{"version":3,"file":"channelManager.js","sourceRoot":"","sources":["../../src/channelManager.ts"],"names":[],"mappings":";;AAAA,wDAAiD;AAKjD,MAAM,cAAc;IAGlB;QAFA,aAAQ,GAA+B,EAAE,CAAC;QAGxC,4BAA4B;QAC5B,IAAI,OAAO,GAAgB,IAAI,qBAAW,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,aAAa,CAAC,IAAS;QACrB,IAAI,OAAO,GAAgC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5E,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;SACvC;aAAM;YACL,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YACpC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7C,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;SACjD;IACH,CAAC;IAED,aAAa,CAAC,UAAkB;QAC9B,KAAK,IAAI,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjC,IAAI,OAAO,CAAC,EAAE,IAAI,UAAU,EAAE;gBAC5B,OAAO,OAAO,CAAC;aAChB;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,kBAAkB,CAAC,MAA4B,EAAE,UAAkB;QACjE,IAAI,OAAO,GAAgC,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE1E,IAAI,OAAO,EAAE;YACX,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;YAC1B,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;SAClC;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,mBAAmB,UAAU,kBAAkB,CAAC,CAAA;SAC7D;IACH,CAAC;IAED,cAAc,CAAC,IAAS;QACtB,IAAI;YACF,IAAI,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,SAAS,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,CAAC,wCAAwC,IAAI,CAAC,MAAM,iBAAiB,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;YACnG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAClC;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;YACrC,OAAO,IAAI,qBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SACtC;IACH,CAAC;CACF;AAAA,CAAC;AAEF,kBAAe,cAAc,CAAC;AAE9B,8GAA8G"} \ No newline at end of file diff --git a/dist/server/channels/sites/mhsChannel.js b/dist/server/channels/sites/mhsChannel.js index c8d9c59..b67fed8 100644 --- a/dist/server/channels/sites/mhsChannel.js +++ b/dist/server/channels/sites/mhsChannel.js @@ -4,7 +4,7 @@ const channelBase_1 = require("../channelBase"); class MHSChannel extends channelBase_1.default { broadcastMessage(from, message) { for (let client of this.clients) { - if (client != from) { + if (client != from && client.data.user_type == 'teacher') { client.ws.send(message); console.log(`sent to ${client.id}: %s`, message); console.log(message); @@ -16,5 +16,6 @@ class MHSChannel extends channelBase_1.default { } } ; +module.exports = MHSChannel; exports.default = MHSChannel; //# sourceMappingURL=mhsChannel.js.map \ No newline at end of file diff --git a/dist/server/channels/sites/mhsChannel.js.map b/dist/server/channels/sites/mhsChannel.js.map index d124194..b25bde6 100644 --- a/dist/server/channels/sites/mhsChannel.js.map +++ b/dist/server/channels/sites/mhsChannel.js.map @@ -1 +1 @@ -{"version":3,"file":"mhsChannel.js","sourceRoot":"","sources":["../../../../src/channels/sites/mhsChannel.ts"],"names":[],"mappings":";;AAEA,gDAAyC;AAEzC,MAAM,UAAW,SAAQ,qBAAW;IAClC,gBAAgB,CAAC,IAA+B,EAAE,OAAe;QAC/D,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACtB;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;aACzC;SACF;IACH,CAAC;CACF;AAAA,CAAC;AAEF,kBAAe,UAAU,CAAC"} \ No newline at end of file +{"version":3,"file":"mhsChannel.js","sourceRoot":"","sources":["../../../../src/channels/sites/mhsChannel.ts"],"names":[],"mappings":";;AAEA,gDAAyC;AAEzC,MAAM,UAAW,SAAQ,qBAAW;IAClC,gBAAgB,CAAC,IAA+B,EAAE,OAAe;QAC/D,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,MAAM,IAAI,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE;gBACxD,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxB,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;aACtB;iBAAM;gBACL,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;aACzC;SACF;IACH,CAAC;CACF;AAAA,CAAC;AAEF,MAAM,CAAC,OAAO,GAAG,UAAU,CAAC;AAC5B,kBAAe,UAAU,CAAC"} \ No newline at end of file diff --git a/dist/server/clientManager.js b/dist/server/clientManager.js index 15cc84f..9a1000d 100644 --- a/dist/server/clientManager.js +++ b/dist/server/clientManager.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +const clientBase_1 = require("./clients/clientBase"); class ClientManager { constructor() { this.clients = []; @@ -7,8 +8,7 @@ class ClientManager { } addClient(data, ws) { if (data.client_type && !this.clientExists(data.user_id)) { - var Client = require(`./clients/${data.client_type}s/${data.client}client`); - var client = new Client(data, ws); + var client = this.getClientType(data, ws); this.clients.push(client); console.log('client added to client manager'); return client; @@ -51,6 +51,18 @@ class ClientManager { index++; } } + getClientType(data, ws) { + try { + var Client = require(`./clients/${data.client_type}s/${data.client}client`); + console.log(`attempting to create client of type ${data.client}, client id: ${data.user_id}...`); + return new Client(data, ws); + } + catch (e) { + console.log(e); + console.log(`creating base client`); + return new clientBase_1.default(data, ws); + } + } } ; exports.default = ClientManager; diff --git a/dist/server/clientManager.js.map b/dist/server/clientManager.js.map index ae74406..9979018 100644 --- a/dist/server/clientManager.js.map +++ b/dist/server/clientManager.js.map @@ -1 +1 @@ -{"version":3,"file":"clientManager.js","sourceRoot":"","sources":["../../src/clientManager.ts"],"names":[],"mappings":";;AAIA,MAAM,aAAa;IAGjB;QAFA,YAAO,GAA6B,EAAE,CAAC;QAGrC,kBAAkB;IACpB,CAAC;IAED,SAAS,CAAC,IAAS,EAAE,EAAa;QAChC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACxD,IAAI,MAAM,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC5E,IAAI,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC;SACf;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAA;YACvF,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,IAAI,MAAM,GAA6B,EAAE,CAAC;QAE1C,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,WAAW,EAAE;gBAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACrB;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;gBACnB,OAAO,MAAM,CAAC;aACf;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,IAAI,KAAK,GAAW,CAAC,CAAC;QAEtB,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;gBACnB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC;aACb;YAED,KAAK,EAAE,CAAC;SACT;IACH,CAAC;CACF;AAAA,CAAC;AAEF,kBAAe,aAAa,CAAC;AAG7B,sFAAsF;AACtF,gXAAgX"} \ No newline at end of file +{"version":3,"file":"clientManager.js","sourceRoot":"","sources":["../../src/clientManager.ts"],"names":[],"mappings":";;AACA,qDAA8C;AAG9C,MAAM,aAAa;IAGjB;QAFA,YAAO,GAA6B,EAAE,CAAC;QAGrC,kBAAkB;IACpB,CAAC;IAED,SAAS,CAAC,IAAS,EAAE,EAAa;QAChC,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACxD,IAAI,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;YAC9C,OAAO,MAAM,CAAC;SACf;aAAM;YACL,OAAO,CAAC,GAAG,CAAC,0EAA0E,CAAC,CAAA;YACvF,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,aAAa,CAAC,WAAmB;QAC/B,IAAI,MAAM,GAA6B,EAAE,CAAC;QAE1C,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,MAAM,CAAC,IAAI,EAAE,IAAI,WAAW,EAAE;gBAChC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACrB;SACF;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;gBACnB,OAAO,MAAM,CAAC;aACf;SACF;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,SAAS,CAAC,EAAU;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED,YAAY,CAAC,EAAU;QACrB,IAAI,KAAK,GAAW,CAAC,CAAC;QAEtB,KAAK,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE;YAC/B,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE;gBACnB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;gBAClB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;gBACnC,OAAO,IAAI,CAAC;aACb;YAED,KAAK,EAAE,CAAC;SACT;IACH,CAAC;IAED,aAAa,CAAC,IAAS,EAAE,EAAa;QACpC,IAAI;YACF,IAAI,MAAM,GAAG,OAAO,CAAC,aAAa,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,MAAM,QAAQ,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,uCAAuC,IAAI,CAAC,MAAM,gBAAgB,IAAI,CAAC,OAAO,KAAK,CAAC,CAAC;YACjG,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SAC7B;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;YACpC,OAAO,IAAI,oBAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACjC;IACH,CAAC;CACF;AAAA,CAAC;AAEF,kBAAe,aAAa,CAAC;AAG7B,sFAAsF;AACtF,gXAAgX"} \ No newline at end of file diff --git a/src/channelManager.ts b/src/channelManager.ts index 3fedaac..529bc90 100644 --- a/src/channelManager.ts +++ b/src/channelManager.ts @@ -13,18 +13,15 @@ class ChannelManager { } createChannel(data: any) { - var channel: ChannelBase|MHSChannel|null = this.channelExists(data.channel_id); + var channel: ChannelBase|MHSChannel|null = this.channelExists(data.channel); if (channel) { console.log('channel already exists'); } else { - var Channel = require(`./channels/${data.client_type}s/${data.client}channel`); - var channel: ChannelBase|MHSChannel|null = new ChannelBase(data.channel_id); - this.channels.push(channel); + channel = this.getChannelType(data); + channel ? this.channels.push(channel) : null; console.log('added channel to channel manager'); } - - console.log(data.channel_id); } channelExists(channel_id: string) { @@ -47,6 +44,18 @@ class ChannelManager { console.log(`channel with id ${channel_id} does not exist.`) } } + + getChannelType(data: any) { + try { + var Channel = require(`./channels/${data.client_type}s/${data.client}channel`); + console.log(`attempting to create channel of type ${data.client}, channel id: ${data.channel}...`); + return new Channel(data.channel); + } catch (e) { + console.log(e); + console.log(`creating base channel`); + return new ChannelBase(data.channel); + } + } }; export default ChannelManager; diff --git a/src/channels/sites/mhsChannel.ts b/src/channels/sites/mhsChannel.ts index 02c841a..cf19fe3 100644 --- a/src/channels/sites/mhsChannel.ts +++ b/src/channels/sites/mhsChannel.ts @@ -5,15 +5,16 @@ import ChannelBase from '../channelBase'; class MHSChannel extends ChannelBase { broadcastMessage(from: ClientBase|MHSClient|null, message: string) { for (let client of this.clients) { - if (client != from) { + if (client != from && client.data.user_type == 'teacher') { client.ws.send(message); console.log(`sent to ${client.id}: %s`, message); console.log(message); } else { - console.log('client is same as sender'); + console.log('client is same as sender and/or not a teacher.'); } } } }; +module.exports = MHSChannel; export default MHSChannel; diff --git a/src/clientManager.ts b/src/clientManager.ts index d0a0096..6e80345 100644 --- a/src/clientManager.ts +++ b/src/clientManager.ts @@ -11,8 +11,7 @@ class ClientManager { addClient(data: any, ws: WebSocket) { if (data.client_type && !this.clientExists(data.user_id)) { - var Client = require(`./clients/${data.client_type}s/${data.client}client`); - var client = new Client(data, ws); + var client = this.getClientType(data, ws); this.clients.push(client); console.log('client added to client manager'); return client; @@ -63,6 +62,18 @@ class ClientManager { index++; } } + + getClientType(data: any, ws: WebSocket) { + try { + var Client = require(`./clients/${data.client_type}s/${data.client}client`); + console.log(`attempting to create client of type ${data.client}, client id: ${data.user_id}...`); + return new Client(data, ws); + } catch (e) { + console.log(e); + console.log(`creating base client`); + return new ClientBase(data, ws); + } + } }; export default ClientManager; diff --git a/src/config/app.ts b/src/config/app.ts index b7bf4b2..6fc7321 100644 --- a/src/config/app.ts +++ b/src/config/app.ts @@ -1,5 +1,5 @@ module.exports = { - version : '0.5.5', + version : '0.6.2', whitelist : (process.env.WHITELIST || "http://admin.localhost").split(','), secret : process.env.SECRET || "test", devToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoidGVzdCBkYXRhIiwiYXVkIjoiaW50ZXJuYWwiLCJpc3MiOiJZYXJkc3RpY2sgU29mdHdhcmUiLCJzdWIiOiJCcmFpZCBKV1QifQ.t6LFXWPEVz3aLXwtrucarggqTkGY_2NnZB8ZTMaJ2oI', diff --git a/src/server.ts b/src/server.ts index bad7275..ed2882f 100755 --- a/src/server.ts +++ b/src/server.ts @@ -50,28 +50,6 @@ wss.on('connection', (ws: WebSocket, request: object, args: string) => { channelManager.addClientToChannel(client, data.channel); } - // ws.on('message', (message: string) => { - - // console.log('received: %s', message); - - // const broadcastRegex = /^broadcast\:/; - - // if (broadcastRegex.test(message)) { - // message = message.replace(broadcastRegex, ''); - - // //send back the message to the other clients - // wss.clients - // .forEach(client => { - // if (client != ws) { - // client.send(`Hello, broadcast message -> ${message}`); - // } - // }); - - // } else { - // ws.send(`Hello, you sent -> ${message}`); - // } - // }); - ws.send('Hi there, welcome to braid, Measures Web Socket server.\nConnecting all our services!'); });