pracuję nad aplikacji rozmawiać za pomocą kątowej 2.kątowa 2 - wykonanie kodu podczas zamykania okna
Jak mogę wysłać polecenie czat mety na backend, gdy użytkownik zamyka okno?
Mój składnik ma metody, która wywołuje usługę backend, aby zakończyć rozmowę w następujący sposób
endChat() {
this.chatService.endChat(this.chatSessionInfo).subscribe(
result => this.OnGetMessages(result),
error => this.OnChatEndError(error)
);
}
Jak można wykonać ten kod podczas zamykania okna? Jak mogę wykryć zdarzenie zamknięcia okna?
Próbowałem z ngOnDestroy, ale z jakiegoś powodu kod nie jest wykonywany.
W moim Component.ts mam.
import { Component, OnInit, AfterViewChecked, ElementRef, ViewChild,OnDestroy} from '@angular/core';
export class ChatComponent implements OnInit, AfterViewChecked,OnDestroy {
i wreszcie
ngOnDestroy() {
this.endChat();
}
Dzięki!
Czy zaimplementowałeś backend z gniazdem socket.io? – rinukkusu
Nie, używam WebApi 2 – federom
Nie wiem, w jaki sposób podłączyłeś swój czat w tle, ale proponuję użyć ['SignalR'] (http://www.asp.net/signalr) na coś jak czat. Po rozłączeniu zostanie wyświetlone [uruchomione zdarzenie] (http://www.asp.net/signalr/overview/guide-to-the-api/handling-connection-lifetime-events) na serwerze. Zobacz przykład: https://github.com/FabianGosebrink/ASPNET-Core-Angular2-SignalR-Typescript – rinukkusu