Итак, я пытаюсь улучшить свои угловые навыки, и сейчас я работаю на форуме.
У меня была идея показать пользователям, сколько пользователей в данный момент в сети.Когда они заходят на форумную часть веб-сайта, я обновляю свою базу данных, чтобы добавить одного участника в счетчик, а когда они уходят, он вычитает одного из той же базы данных.
Я думал, что все это понял, когда добавиллогика плюс один для ngOnInit () и логика deduct-n для ngOnDestroy, но затем я заметил, что когда я обновил страницу с помощью f5, ngOndestroy () не сработал.Результатом является то, что он продолжает добавлять участников в число участников, даже если на страницу всегда смотрит один и тот же человек.
Как я могу убедиться, что счет вычитает единицу, когда человек переходит на другую часть моего SPA и когда он обновляет страницу?
Мой код:в ngOnDestroy я делаю запрос на сервер, чтобы вычесть один в базе данных, а затем отписаться от всех наблюдаемых в компоненте
export class ForumCountComponent implements OnInit, OnDestroy{
data;
ngUnsubscribe = new Subject();
constructor(private authService: AuthenticationService, private forumService: ForumService){
}
ngOnInit(){
let loggedIn = this.authService.isLoggedIn();
this.forumService.forumCountPlus(loggedIn)
.takeUntil(this.ngUnsubscribe)
.subscribe((data) => {
this.data = data;
console.log(data);
})
}
ngOnDestroy(){
let loggedIn = this.authService.isLoggedIn();
this.forumService.forumCountMin(loggedIn)
.takeUntil(this.ngUnsubscribe)
.subscribe((data) => {
this.data = data;
this.ngUnsubscribe.next();
this.ngUnsubscribe.complete();
})
}