diff --git a/client/src/app/shared/services/websocket.service.spec.ts b/client/src/app/shared/services/websocket.service.spec.ts new file mode 100644 index 0000000..bf79772 --- /dev/null +++ b/client/src/app/shared/services/websocket.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { WebsocketService } from './websocket.service'; + +describe('WebsocketService', () => { + let service: WebsocketService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(WebsocketService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/client/src/app/shared/services/websocket.service.ts b/client/src/app/shared/services/websocket.service.ts new file mode 100644 index 0000000..4a3005e --- /dev/null +++ b/client/src/app/shared/services/websocket.service.ts @@ -0,0 +1,48 @@ +import { Injectable } from '@angular/core'; +import { Observable, filter, share } from 'rxjs'; +import { WebSocketSubject, webSocket } from 'rxjs/webSocket'; + +@Injectable({ + providedIn: 'root' +}) +export class WebsocketService { + + private subject!: WebSocketSubject; + private res: any; + + constructor() {} + + public connect(url: string){ + this.subject = webSocket(url); + + this.subject.subscribe({ + next: (msg: any) => { + // console.log("message", msg); + this.res = msg; + console.log("res set =",this.res); + }, + error: (err: any) => { + console.error(err); + }, + complete: () => { + console.log('complete'); + } + }) + } + + // public listenTo(topic: string): Observable { + // return this.subject.pipe( + // value => value.topic == topic, + + // ); + + // } + + public data = this.subject.pipe( + share() + ); + + public send(url: any){ + this.subject.next(url); + } +}