properly delegate to sub classes for channels and clients
This commit is contained in:
parent
cdd6179992
commit
74aad4a957
20
dist/server/channelManager.js
vendored
20
dist/server/channelManager.js
vendored
@ -9,17 +9,15 @@ class ChannelManager {
|
|||||||
this.channels.push(channel);
|
this.channels.push(channel);
|
||||||
}
|
}
|
||||||
createChannel(data) {
|
createChannel(data) {
|
||||||
var channel = this.channelExists(data.channel_id);
|
var channel = this.channelExists(data.channel);
|
||||||
if (channel) {
|
if (channel) {
|
||||||
console.log('channel already exists');
|
console.log('channel already exists');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var Channel = require(`./channels/${data.client_type}s/${data.client}channel`);
|
channel = this.getChannelType(data);
|
||||||
var channel = new channelBase_1.default(data.channel_id);
|
channel ? this.channels.push(channel) : null;
|
||||||
this.channels.push(channel);
|
|
||||||
console.log('added channel to channel manager');
|
console.log('added channel to channel manager');
|
||||||
}
|
}
|
||||||
console.log(data.channel_id);
|
|
||||||
}
|
}
|
||||||
channelExists(channel_id) {
|
channelExists(channel_id) {
|
||||||
for (let channel of this.channels) {
|
for (let channel of this.channels) {
|
||||||
@ -39,6 +37,18 @@ class ChannelManager {
|
|||||||
console.log(`channel with id ${channel_id} does not exist.`);
|
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;
|
exports.default = ChannelManager;
|
||||||
|
2
dist/server/channelManager.js.map
vendored
2
dist/server/channelManager.js.map
vendored
@ -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"}
|
{"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"}
|
3
dist/server/channels/sites/mhsChannel.js
vendored
3
dist/server/channels/sites/mhsChannel.js
vendored
@ -4,7 +4,7 @@ const channelBase_1 = require("../channelBase");
|
|||||||
class MHSChannel extends channelBase_1.default {
|
class MHSChannel extends channelBase_1.default {
|
||||||
broadcastMessage(from, message) {
|
broadcastMessage(from, message) {
|
||||||
for (let client of this.clients) {
|
for (let client of this.clients) {
|
||||||
if (client != from) {
|
if (client != from && client.data.user_type == 'teacher') {
|
||||||
client.ws.send(message);
|
client.ws.send(message);
|
||||||
console.log(`sent to ${client.id}: %s`, message);
|
console.log(`sent to ${client.id}: %s`, message);
|
||||||
console.log(message);
|
console.log(message);
|
||||||
@ -16,5 +16,6 @@ class MHSChannel extends channelBase_1.default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
|
module.exports = MHSChannel;
|
||||||
exports.default = MHSChannel;
|
exports.default = MHSChannel;
|
||||||
//# sourceMappingURL=mhsChannel.js.map
|
//# sourceMappingURL=mhsChannel.js.map
|
2
dist/server/channels/sites/mhsChannel.js.map
vendored
2
dist/server/channels/sites/mhsChannel.js.map
vendored
@ -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"}
|
{"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"}
|
16
dist/server/clientManager.js
vendored
16
dist/server/clientManager.js
vendored
@ -1,5 +1,6 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
Object.defineProperty(exports, "__esModule", { value: true });
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
const clientBase_1 = require("./clients/clientBase");
|
||||||
class ClientManager {
|
class ClientManager {
|
||||||
constructor() {
|
constructor() {
|
||||||
this.clients = [];
|
this.clients = [];
|
||||||
@ -7,8 +8,7 @@ class ClientManager {
|
|||||||
}
|
}
|
||||||
addClient(data, ws) {
|
addClient(data, ws) {
|
||||||
if (data.client_type && !this.clientExists(data.user_id)) {
|
if (data.client_type && !this.clientExists(data.user_id)) {
|
||||||
var Client = require(`./clients/${data.client_type}s/${data.client}client`);
|
var client = this.getClientType(data, ws);
|
||||||
var client = new Client(data, ws);
|
|
||||||
this.clients.push(client);
|
this.clients.push(client);
|
||||||
console.log('client added to client manager');
|
console.log('client added to client manager');
|
||||||
return client;
|
return client;
|
||||||
@ -51,6 +51,18 @@ class ClientManager {
|
|||||||
index++;
|
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;
|
exports.default = ClientManager;
|
||||||
|
2
dist/server/clientManager.js.map
vendored
2
dist/server/clientManager.js.map
vendored
@ -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"}
|
{"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"}
|
@ -13,18 +13,15 @@ class ChannelManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
createChannel(data: any) {
|
createChannel(data: any) {
|
||||||
var channel: ChannelBase|MHSChannel|null = this.channelExists(data.channel_id);
|
var channel: ChannelBase|MHSChannel|null = this.channelExists(data.channel);
|
||||||
|
|
||||||
if (channel) {
|
if (channel) {
|
||||||
console.log('channel already exists');
|
console.log('channel already exists');
|
||||||
} else {
|
} else {
|
||||||
var Channel = require(`./channels/${data.client_type}s/${data.client}channel`);
|
channel = this.getChannelType(data);
|
||||||
var channel: ChannelBase|MHSChannel|null = new ChannelBase(data.channel_id);
|
channel ? this.channels.push(channel) : null;
|
||||||
this.channels.push(channel);
|
|
||||||
console.log('added channel to channel manager');
|
console.log('added channel to channel manager');
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(data.channel_id);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
channelExists(channel_id: string) {
|
channelExists(channel_id: string) {
|
||||||
@ -47,6 +44,18 @@ class ChannelManager {
|
|||||||
console.log(`channel with id ${channel_id} does not exist.`)
|
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;
|
export default ChannelManager;
|
||||||
|
@ -5,15 +5,16 @@ import ChannelBase from '../channelBase';
|
|||||||
class MHSChannel extends ChannelBase {
|
class MHSChannel extends ChannelBase {
|
||||||
broadcastMessage(from: ClientBase|MHSClient|null, message: string) {
|
broadcastMessage(from: ClientBase|MHSClient|null, message: string) {
|
||||||
for (let client of this.clients) {
|
for (let client of this.clients) {
|
||||||
if (client != from) {
|
if (client != from && client.data.user_type == 'teacher') {
|
||||||
client.ws.send(message);
|
client.ws.send(message);
|
||||||
console.log(`sent to ${client.id}: %s`, message);
|
console.log(`sent to ${client.id}: %s`, message);
|
||||||
console.log(message);
|
console.log(message);
|
||||||
} else {
|
} 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;
|
export default MHSChannel;
|
||||||
|
@ -11,8 +11,7 @@ class ClientManager {
|
|||||||
|
|
||||||
addClient(data: any, ws: WebSocket) {
|
addClient(data: any, ws: WebSocket) {
|
||||||
if (data.client_type && !this.clientExists(data.user_id)) {
|
if (data.client_type && !this.clientExists(data.user_id)) {
|
||||||
var Client = require(`./clients/${data.client_type}s/${data.client}client`);
|
var client = this.getClientType(data, ws);
|
||||||
var client = new Client(data, ws);
|
|
||||||
this.clients.push(client);
|
this.clients.push(client);
|
||||||
console.log('client added to client manager');
|
console.log('client added to client manager');
|
||||||
return client;
|
return client;
|
||||||
@ -63,6 +62,18 @@ class ClientManager {
|
|||||||
index++;
|
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;
|
export default ClientManager;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
version : '0.5.5',
|
version : '0.6.2',
|
||||||
whitelist : (process.env.WHITELIST || "http://admin.localhost").split(','),
|
whitelist : (process.env.WHITELIST || "http://admin.localhost").split(','),
|
||||||
secret : process.env.SECRET || "test",
|
secret : process.env.SECRET || "test",
|
||||||
devToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoidGVzdCBkYXRhIiwiYXVkIjoiaW50ZXJuYWwiLCJpc3MiOiJZYXJkc3RpY2sgU29mdHdhcmUiLCJzdWIiOiJCcmFpZCBKV1QifQ.t6LFXWPEVz3aLXwtrucarggqTkGY_2NnZB8ZTMaJ2oI',
|
devToken: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjoidGVzdCBkYXRhIiwiYXVkIjoiaW50ZXJuYWwiLCJpc3MiOiJZYXJkc3RpY2sgU29mdHdhcmUiLCJzdWIiOiJCcmFpZCBKV1QifQ.t6LFXWPEVz3aLXwtrucarggqTkGY_2NnZB8ZTMaJ2oI',
|
||||||
|
@ -50,28 +50,6 @@ wss.on('connection', (ws: WebSocket, request: object, args: string) => {
|
|||||||
channelManager.addClientToChannel(client, data.channel);
|
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!');
|
ws.send('Hi there, welcome to braid, Measures Web Socket server.\nConnecting all our services!');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user