fix(core): update

This commit is contained in:
Philipp Kunz 2019-06-07 11:49:10 +02:00
parent 57809d9b53
commit eb04abddbf
6 changed files with 43 additions and 13 deletions

12
package-lock.json generated
View File

@ -330,9 +330,9 @@
} }
}, },
"@pushrocks/smartsocket": { "@pushrocks/smartsocket": {
"version": "1.1.37", "version": "1.1.38",
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartsocket/-/smartsocket-1.1.37.tgz", "resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartsocket/-/smartsocket-1.1.38.tgz",
"integrity": "sha512-4XYj4v7yrvmh1PlKe7u6fE84bsAn4c8loGA/hxbB1IPntXBXZbXqEXnOQo6Dpqxwk6nGC4ABGpZIMXf+o6qcLQ==", "integrity": "sha512-mGWEuA53GqTFOCebwo4Ayu2l7xjui7I0tdUNgZShGhIr4yv+q3sP/66q6cT388xVawIN+swviJPlPoogaoZXdA==",
"requires": { "requires": {
"@pushrocks/lik": "^3.0.5", "@pushrocks/lik": "^3.0.5",
"@pushrocks/smartdelay": "^2.0.3", "@pushrocks/smartdelay": "^2.0.3",
@ -510,9 +510,9 @@
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
}, },
"@types/node": { "@types/node": {
"version": "12.0.6", "version": "12.0.7",
"resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-12.0.6.tgz", "resolved": "https://verdaccio.lossless.one/@types%2fnode/-/node-12.0.7.tgz",
"integrity": "sha512-3sV/MUw6uYxPaRIoooI/MjO0j1A06JNlbpkGc56F+zikO52qavehD/Qw85so47gWhO82tNzEFoF6adXqIfK+EA==" "integrity": "sha512-1YKeT4JitGgE4SOzyB9eMwO0nGVNkNEsm9qlIt1Lqm/tG2QEiSMTD4kS3aO6L+w5SClLVxALmIBESK6Mk5wX0A=="
}, },
"@types/range-parser": { "@types/range-parser": {
"version": "1.2.3", "version": "1.2.3",

View File

@ -17,7 +17,7 @@
"@gitzone/tsbuild": "^2.1.11", "@gitzone/tsbuild": "^2.1.11",
"@gitzone/tstest": "^1.0.24", "@gitzone/tstest": "^1.0.24",
"@pushrocks/tapbundle": "^3.0.9", "@pushrocks/tapbundle": "^3.0.9",
"@types/node": "^12.0.6", "@types/node": "^12.0.7",
"tslint": "^5.17.0", "tslint": "^5.17.0",
"tslint-config-prettier": "^1.18.0" "tslint-config-prettier": "^1.18.0"
}, },
@ -33,7 +33,7 @@
"@pushrocks/smartpromise": "^3.0.2", "@pushrocks/smartpromise": "^3.0.2",
"@pushrocks/smartrequest": "^1.1.15", "@pushrocks/smartrequest": "^1.1.15",
"@pushrocks/smartrx": "^2.0.3", "@pushrocks/smartrx": "^2.0.3",
"@pushrocks/smartsocket": "^1.1.37", "@pushrocks/smartsocket": "^1.1.38",
"@pushrocks/smarttime": "^3.0.7", "@pushrocks/smarttime": "^3.0.7",
"@pushrocks/smartunique": "^3.0.1" "@pushrocks/smartunique": "^3.0.1"
}, },

View File

@ -0,0 +1,4 @@
export interface IAuthenticationRequest {
channelName: string;
password: string;
}

View File

@ -95,12 +95,12 @@ export class Universe {
const SubscriptionSocketFunction = new plugins.smartsocket.SocketFunction({ const SubscriptionSocketFunction = new plugins.smartsocket.SocketFunction({
allowedRoles: [ClientRole], // there is only one client role, Authentication happens on another level allowedRoles: [ClientRole], // there is only one client role, Authentication happens on another level
funcName: 'channelSubscription', funcName: 'channelSubscription',
funcDef: async (dataArg, socketConnectionArg) => { funcDef: async (dataArg: interfaces.IServerCallSubscribeActionPayload, socketConnectionArg) => {
// run in "this context" of this class // run in "this context" of this class
(() => { (() => {
// TODO: properly add the connection // TODO: properly add the connection
const universeConnection = new UniverseConnection({ const universeConnection = new UniverseConnection({
authenticationRequest:
}) })
this.universeConnectionManager.addConnection(); this.universeConnectionManager.addConnection();
})(); })();

View File

@ -5,21 +5,29 @@ import { UniverseChannel } from './smartuniverse.classes.universechannel';
* represents a connection to the universe * represents a connection to the universe
*/ */
export class UniverseConnection { export class UniverseConnection {
public terminatedDeferred = plugins.smartpromise.defer();
/** /**
* the socketClient to ping * the socketClient to ping
*/ */
public socketConnection: plugins.smartsocket.SocketConnection; public socketConnection: plugins.smartsocket.SocketConnection;
public authenticationRequests = [] public authenticationRequests = [];
public subscribedChannels: UniverseChannel[] = []; public subscribedChannels: UniverseChannel[] = [];
public authenticatedChannels: UniverseChannel[] = []; public authenticatedChannels: UniverseChannel[] = [];
public failedToJoinChannels: UniverseChannel[] = []; public failedToJoinChannels: UniverseChannel[] = [];
/**
* terminates the connection
*/
public terminateConnection () { public terminateConnection () {
this.socketConnection this.socketConnection.socket.disconnect();
this.terminatedDeferred.resolve();
} }
constructor(optionsArg: { constructor(optionsArg: {
socketConnection: plugins.smartsocket.SocketConnection; socketConnection: plugins.smartsocket.SocketConnection;
authenticationRequests
}) { }) {
this.socketConnection, this.socketConnection,
} }

View File

@ -7,5 +7,23 @@ import { UniverseConnection } from './smartuniverse.classes.universeconnection';
export class UniverseConnectionManager { export class UniverseConnectionManager {
public connectionMap = new plugins.lik.Objectmap<UniverseConnection>(); public connectionMap = new plugins.lik.Objectmap<UniverseConnection>();
public addConnection() {} public async addConnection(universeConnectionArg: UniverseConnection) {
let universeConnection = universeConnectionArg;
universeConnection = await this.deduplicateUniverseConnection(universeConnection);
universeConnection = this.authenticateAuthenticationRequests();
}
/**
* deduplicates UniverseConnections
*/
public deduplicateUniverseConnection (universeConnectionArg: UniverseConnection): Promise<UniverseConnection> {
}
/**
* authenticate AuthenticationRequests
*/
public authenticateAuthenticationRequests(universeConnectionArg) {
}
} }