fix(core): update

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

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({
allowedRoles: [ClientRole], // there is only one client role, Authentication happens on another level
funcName: 'channelSubscription',
funcDef: async (dataArg, socketConnectionArg) => {
funcDef: async (dataArg: interfaces.IServerCallSubscribeActionPayload, socketConnectionArg) => {
// run in "this context" of this class
(() => {
// TODO: properly add the connection
const universeConnection = new UniverseConnection({
authenticationRequest:
})
this.universeConnectionManager.addConnection();
})();

View File

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

View File

@ -7,5 +7,23 @@ import { UniverseConnection } from './smartuniverse.classes.universeconnection';
export class UniverseConnectionManager {
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) {
}
}