Semaine 9
Cette semaine nous allons rendre notre application temps réel grâce à SignalR. Cela permettra d’ajouter un chat global pour que les utilisateurs puissent communiquer entre eux.
Lien du front : http://csharp.nouvet.fr/front9/
SignalR
SignalR est une bibliothèque ASP.NET Core qui simplifie l’ajout de fonctionnalités web en temps réel aux applications.
Configuration
- Ajoutez le service SignalR dans votre
Program.cs. - Mappez le Hub SignalR sur la route
/hub/chat.
ChatHub
Vous devrez créer une classe ChatHub qui hérite de Hub.
Ce hub devra permettre :
- Aux clients d’envoyer un message (
SendMessage) qui sera relayé à tous les autres clients. - De recevoir le nom de l’utilisateur et le contenu du message.
Messages Système
Le chat ne sert pas uniquement aux utilisateurs, le serveur doit aussi pouvoir y poster des informations.
Reset
Lorsqu’un utilisateur effectue un Reset de sa progression (endpoint existant), le serveur doit envoyer un message automatique dans le chat.
Le message doit être de la forme :
SYSTEM: {UserName} a reset son score de {Score} points !
Pour cela, vous devrez injecter IHubContext<ChatHub> dans votre contrôleur ou service qui gère le reset.
CORS pour SignalR
Pour utiliser SignalR, vous devez autoriser les credentials dans la politique CORS. Reférencez-vous au chapitre SignalR CORS pour plus de détails.