fix(core): update
This commit is contained in:
		| @@ -57,19 +57,18 @@ export class ClientUniverse { | ||||
|   } | ||||
|  | ||||
|   public async sendMessage(messageArg: interfaces.IMessageCreator) { | ||||
|     console.log('hello'); | ||||
|     await this.checkConnection(); | ||||
|     const requestBody: interfaces.IUniverseMessage = { | ||||
|       id: plugins.smartunique.shortId(), | ||||
|       timestamp: Date.now(), | ||||
|       passphrase: (await this.getChannel(messageArg.targetChannelName)).passphrase, | ||||
|       ...messageArg | ||||
|     }; | ||||
|     const requestBodyString = JSON.stringify(requestBody); | ||||
|     // TODO: User websocket connection if available | ||||
|     const response = await plugins.smartrequest.postJson( | ||||
|       `${this.options.serverAddress}/sendmessage`, | ||||
|       { | ||||
|         requestBody: requestBodyString | ||||
|         requestBody | ||||
|       } | ||||
|     ); | ||||
|   } | ||||
| @@ -85,15 +84,17 @@ export class ClientUniverse { | ||||
|   private async checkConnection(): Promise<void> { | ||||
|     if (!this.socketClient && !this.observableIntake) { | ||||
|       const parsedURL = url.parse(this.options.serverAddress); | ||||
|       this.socketClient = new SmartsocketClient({ | ||||
|       const socketConfig: plugins.smartsocket.ISmartsocketClientOptions = { | ||||
|         alias: process.env.SOCKET_ALIAS || 'someclient', | ||||
|         password: 'UniverseClient', | ||||
|         port: parseInt(parsedURL.port, 10), | ||||
|         role: 'UniverseClient', | ||||
|         url: parsedURL.hostname | ||||
|       }); | ||||
|         url: parsedURL.protocol + '//' + parsedURL.hostname | ||||
|       }; | ||||
|       console.log(socketConfig); | ||||
|       this.socketClient = new SmartsocketClient(socketConfig); | ||||
|       this.observableIntake = new plugins.smartrx.ObservableIntake(); | ||||
|       this.socketClient.connect(); | ||||
|       await this.socketClient.connect(); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|   | ||||
| @@ -80,22 +80,21 @@ export class Universe { | ||||
|     this.smartexpressServer.addRoute( | ||||
|       '/sendmessage', | ||||
|       new Handler('POST', async (req, res) => { | ||||
|         const universeMessageInstance = new UniverseMessage(req.body); | ||||
|         const universeMessageInstance: UniverseMessage = new UniverseMessage(req.body); | ||||
|         this.universeCache.addMessage(universeMessageInstance); | ||||
|          | ||||
|         res.status(200); | ||||
|         res.end(); | ||||
|       }) | ||||
|     ); | ||||
|  | ||||
|     // add websocket upgrade | ||||
|     this.smartsocket = new plugins.smartsocket.Smartsocket({ | ||||
|       port: 12345 // fix this within smartsocket | ||||
|     }); | ||||
|     this.smartsocket = new plugins.smartsocket.Smartsocket({}); | ||||
|  | ||||
|     // add a role for the clients | ||||
|     const ClientRole = new plugins.smartsocket.SocketRole({ | ||||
|       name: 'clientuniverse', | ||||
|       passwordHash: 'clientuniverse' // authentication happens on another level | ||||
|       name: 'UniverseClient', | ||||
|       passwordHash: plugins.smarthash.sha256FromStringSync('UniverseClient') // authentication happens on another level | ||||
|     }); | ||||
|  | ||||
|     // add the role to smartsocket | ||||
| @@ -105,18 +104,16 @@ export class Universe { | ||||
|       allowedRoles: [ClientRole], | ||||
|       funcName: 'channelSubscription', | ||||
|       funcDef: () => { | ||||
|         console.log('a client connected'); | ||||
|       } // TODO: implement an action upon connection of clients | ||||
|     }); | ||||
|  | ||||
|     // add smartsocket to the running smartexpress app | ||||
|     this.smartsocket.setExternalServer('express', this.smartexpressServer as any); | ||||
|  | ||||
|     // start the socket | ||||
|     this.smartsocket.start(); | ||||
|  | ||||
|     // start the smartexpress instance | ||||
|     this.smartsocket.setExternalServer('smartexpress', this.smartexpressServer as any); | ||||
|     // start everything | ||||
|     await this.smartexpressServer.start(); | ||||
|     await this.smartsocket.start(); | ||||
|     console.log('started universe'); | ||||
|      | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|   | ||||
| @@ -52,7 +52,7 @@ export class UniverseCache { | ||||
|   /** | ||||
|    * Read a message from the UniverseCache | ||||
|    */ | ||||
|   public readMessagesYoungerThan(unixTimeArg?: number): Observable<UniverseMessage> { | ||||
|   public readMessagesYoungerThan(unixTimeArg?: number, channelName?: string): Observable<UniverseMessage> { | ||||
|     const messageObservable = from(this.messageMap.getArray()).pipe( | ||||
|       filter(messageArg => { | ||||
|         return messageArg.smartTimestamp.isYoungerThanMilliSeconds(this.destructionTime); | ||||
|   | ||||
| @@ -88,5 +88,7 @@ export class UniverseChannel { | ||||
|     ); | ||||
|   } | ||||
|  | ||||
|   public pushToClients(messageArg: UniverseMessage) {} | ||||
|   public pushToClients(messageArg: UniverseMessage) { | ||||
|      | ||||
|   } | ||||
| } | ||||
|   | ||||
							
								
								
									
										20
									
								
								ts/smartuniverse.classes.universesubscription.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								ts/smartuniverse.classes.universesubscription.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,20 @@ | ||||
| import * as plugins from './smartuniverse.plugins'; | ||||
| import { UniverseChannel } from './smartuniverse.classes.universechannel'; | ||||
|  | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * represents a subscription into a specific topic | ||||
|  */ | ||||
| export class UniverseConnection { | ||||
|   /** | ||||
|    * the socketClient to ping | ||||
|    */ | ||||
|   socketclient: plugins.smartsocket.SmartsocketClient; | ||||
|   subscribedChannels: UniverseChannel[] = []; | ||||
|   authenticatedChannels: UniverseChannel[] = []; | ||||
|  | ||||
|   constructor() { | ||||
|  | ||||
|   } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user