Creé un proyecto angular en el que mi conexión de socket web se abre después de volver a cargar la página; de lo contrario, no se abre. Quiero iniciar un socket tan pronto como el usuario inicie sesión y cerrar el socket cuando cierre la sesión.
A continuación se muestra el servicio de socket que creé usando rxjs web sockets not socket.io :
SOCKET_URL: string = environment.webSocketEndpoint; ws: WebSocketSubject<any>; open() { this.ws = webSocket(`${this.SOCKET_URL}/?access_token=${this.auth.user()?.['accessToken']}&platform=web`); } emit(event: Object): void { this.ws.next(event); } events(): Observable<any> { if (this.ws === undefined ) { this.open(); } return this.ws?.asObservable(); } close() { this.ws.unsubscribe(); } } En app.ts en nogOnit() :
if(this.auth.user()){ this.socketService.open()}