aboutsummaryrefslogtreecommitdiff
path: root/frontend/src/app/_services/web-socket.service.ts
diff options
context:
space:
mode:
authorDanijel Andjelkovic <adanijel99@gmail.com>2022-03-24 05:04:11 +0100
committerDanijel Andjelkovic <adanijel99@gmail.com>2022-03-24 05:04:11 +0100
commitb200ec561202a95ad716ffe84fcb6a8fa61bc939 (patch)
tree160d9d2e0da4cb35295c995b6bd817a3ff3fd056 /frontend/src/app/_services/web-socket.service.ts
parent1e945887ec22158c517c33afab0a38cb713eb144 (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/web-socket.service.ts')
-rw-r--r--frontend/src/app/_services/web-socket.service.ts39
1 files changed, 39 insertions, 0 deletions
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);
+ }
+}