import {Controller, view, Session, Inject, Injectable, Locale, Validator, WebSocketBus, JSONMessageEvent, Logging, Bus, WebSocketCloseEvent} from '@extollo/lib' import {UserLogin} from "../../../types/UserLogin"; @Injectable() export class Home extends Controller { @Inject() protected readonly session!: Session; @Inject() protected readonly locale!: Locale; @Inject() protected readonly logging!: Logging public welcome() { this.session.set('app_visits', this.session.get('app_visits', 0) + 1) const valid = new Promise(() => {}) return view('@extollo:welcome', { app_visits: this.session.get('app_visits'), locale: this.locale.helper(), }) } public async socket(ws: WebSocketBus): Promise { ws.subscribe(JSONMessageEvent, event => { this.logging.info('Got JSON message event:') this.logging.debug(event.value) }) const interval = setInterval(() => { ws.push(new JSONMessageEvent({ hello: 'world!' })) }, 5000) await this.request.make(Bus) .subscribe(WebSocketCloseEvent, () => { clearInterval(interval) }) } public test() { return new Validator() } }