From 40ab6485a10b0f33b024075b99af7d8259dbb232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=20K=C3=A4sler?= <tom.kaesler@mni.thm.de> Date: Thu, 14 Nov 2019 15:08:51 +0100 Subject: [PATCH] Unsubscribe from feedback stream --- .../feedback-barometer-page.component.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts b/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts index a6a036247..1d65e8cf1 100644 --- a/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts +++ b/src/app/components/shared/feedback-barometer-page/feedback-barometer-page.component.ts @@ -1,10 +1,11 @@ -import { Component, OnInit } from '@angular/core'; +import { Component, OnInit, OnDestroy } from '@angular/core'; import { ActivatedRoute } from '@angular/router'; import { AuthenticationService } from '../../../services/http/authentication.service'; import { UserRole } from '../../../models/user-roles.enum'; import { NotificationService } from '../../../services/util/notification.service'; import { Message } from '@stomp/stompjs'; import { WsFeedbackService } from '../../../services/websockets/ws-feedback.service'; +import { Subscription } from 'rxjs'; /* ToDo: Use TranslateService */ @@ -13,7 +14,7 @@ import { WsFeedbackService } from '../../../services/websockets/ws-feedback.serv templateUrl: './feedback-barometer-page.component.html', styleUrls: ['./feedback-barometer-page.component.scss'] }) -export class FeedbackBarometerPageComponent implements OnInit { +export class FeedbackBarometerPageComponent implements OnInit, OnDestroy { feedback: any = [ { state: 0, name: 'sentiment_very_satisfied', message: 'Ich kann folgen.', count: 0, }, { state: 1, name: 'sentiment_satisfied', message: 'Schneller, bitte!', count: 0, }, @@ -22,6 +23,7 @@ export class FeedbackBarometerPageComponent implements OnInit { ]; userRole: UserRole; roomId: string; + protected sub: Subscription; constructor( private authenticationService: AuthenticationService, @@ -34,13 +36,19 @@ export class FeedbackBarometerPageComponent implements OnInit { ngOnInit() { this.userRole = this.authenticationService.getRole(); - this.wsFeedbackService.getFeedbackStream(this.roomId).subscribe((message: Message) => { + this.sub = this.wsFeedbackService.getFeedbackStream(this.roomId).subscribe((message: Message) => { this.parseIncomingMessage(message); }); this.wsFeedbackService.get(this.roomId); } + ngOnDestroy() { + if (this.sub) { + this.sub.unsubscribe(); + } + } + private updateFeedback(data) { const reducer = (accumulator, currentValue) => accumulator + currentValue; const sum = data.reduce(reducer); -- GitLab