diff options
author | Danijel Andjelkovic <adanijel99@gmail.com> | 2022-03-24 05:04:11 +0100 |
---|---|---|
committer | Danijel Andjelkovic <adanijel99@gmail.com> | 2022-03-24 05:04:11 +0100 |
commit | b200ec561202a95ad716ffe84fcb6a8fa61bc939 (patch) | |
tree | 160d9d2e0da4cb35295c995b6bd817a3ff3fd056 /frontend/src/app/_services | |
parent | 1e945887ec22158c517c33afab0a38cb713eb144 (diff) |
Napravio ml mikroservis websocket server.
Napravio backend websocket server, i backend socket klijent (za povezivanje sa ml mikroservisom).
Napravio frontend websocket klijenta, za povezivanje sa backend-om.
Diffstat (limited to 'frontend/src/app/_services')
-rw-r--r-- | frontend/src/app/_services/web-socket.service.spec.ts | 16 | ||||
-rw-r--r-- | frontend/src/app/_services/web-socket.service.ts | 39 |
2 files changed, 55 insertions, 0 deletions
diff --git a/frontend/src/app/_services/web-socket.service.spec.ts b/frontend/src/app/_services/web-socket.service.spec.ts new file mode 100644 index 00000000..a86aeca7 --- /dev/null +++ b/frontend/src/app/_services/web-socket.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { WebSocketService } from './web-socket.service'; + +describe('WebSocketService', () => { + let service: WebSocketService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(WebSocketService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/_services/web-socket.service.ts b/frontend/src/app/_services/web-socket.service.ts new file mode 100644 index 00000000..fc292a62 --- /dev/null +++ b/frontend/src/app/_services/web-socket.service.ts @@ -0,0 +1,39 @@ +import { Injectable } from '@angular/core'; +import { API_SETTINGS } from 'src/config'; +import { ConstantBackoff, Websocket, WebsocketBuilder } from 'websocket-ts/lib'; + +@Injectable({ + providedIn: 'root' +}) +export class WebSocketService { + + ws?: Websocket; + + private handlers: Function[] = []; + + constructor() { + this.ws = new WebsocketBuilder(API_SETTINGS.apiWSUrl) + .withBackoff(new ConstantBackoff(30000)) + .onOpen((i, e) => { console.log('WS: Connected to ' + API_SETTINGS.apiWSUrl) }) + .onMessage((i, e) => { + console.log('WS MESSAGE: ', e.data); + this.handlers.forEach(handler => { + handler(e.data); + }) + }) + .onClose((i, e) => { console.log('WS: Connection closed!') }) + .build(); + } + + send(msg: string) { + this.ws?.send(msg); + } + + addHandler(handler: Function) { + this.handlers.push(handler); + } + + removeHandler(handler: Function) { + this.handlers.splice(this.handlers.indexOf(handler), 1); + } +} |