← Tous les cours
Architecture · Cours gratuit

Applications temps réel avec push serveur

La plupart des écrans de gestion attendent que l’utilisateur clique sur Actualiser. Ce cours vous apprend à créer des applications Wisej.NET qui se mettent à jour d’elles-mêmes — en poussant les changements du serveur vers chaque navigateur connecté dès qu’un événement se produit — le tout autour du projet réaliste TicketOps Live. Sept modules couvrent l’architecture web temps réel, le contexte applicatif et le cycle de vie de la session, le push serveur pour une session avec des tâches en arrière-plan, les timers et le polling de repli pour la cadence des mises à jour, la liaison de données en direct et les grilles temps réel, et le push multi-utilisateurs via des services et des hubs d’événements — avant de tout durcir pour la production et de livrer le projet de synthèse. Il s’adresse aux développeurs à l’aise avec les bases qui veulent faire du push WebSocket, des tâches en arrière-plan et des données en direct à la manière de Wisej.NET.

Push WebSocket, tâches en arrière-plan, polling de repli et liaison de données en direct pour des applications Wisej.NET qui se mettent à jour d’elles-mêmes — autour du projet TicketOps Live.

Commencer ce cours gratuit

Également disponible en: EnglishDeutschItalianoEspañol

Programme

Module 1: Architecture web temps réel dans Wisej.NET

Module 1 du cours Applications temps réel avec push serveur — le parcours temps réel de Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas « Push WebSocket ou polling : construire le modèle mental », réussissez la vérification des connaissances, puis réalisez le lab pratique dans TicketOps Live.

  1. LectureGuide de la leçon · 14 min

    L’architecture temps réel pilotée par le serveur : push via WebSocket, mises à jour dans la requête et polling de repli dans le modèle côté serveur de Wisej.NET. Le concept, le modèle mental et les pièges en production — à lire avant le lab.

    Lire le guide de la leçon (PDF)

  2. LectureGuide du lab / de l’examen · 10 min

    Ce que vous allez construire dans le lab pratique, les tâches, l’implémentation suggérée et les critères d’acceptation.

    Lire le guide de la leçon (PDF)

  3. Leçon vidéoPush WebSocket ou polling : construire le modèle mental · 13 min

    Push WebSocket ou polling : construire le modèle mental — une vidéo pas à pas guidée du Module 1, que vous pouvez suivre directement ici dans le lecteur.

    Transcription de la narration

    Utilisez TicketOps Live pour examiner comment un écran d'opérations reçoit les modifications. La distinction importante est ce qui déclenche une mise à jour, car cela détermine si le navigateur doit la demander.

    Le serveur est propriétaire des contrôles et de leur état ; le navigateur présente ses widgets. Wisej.NET synchronise les modifications entre elles, permettant au traitement en arrière-plan de fournir des mises à jour visibles via WebSocket.

    Lors d'une demande de bouton, changez le label normalement. Wisej.NET inclut ce changement dans sa réponse, donc un appel de mise à jour explicite serait inutile pour cette action liée à la demande.

    Le traitement en arrière-plan n'a pas de réponse de bouton en attente pour appliquer ses modifications. Après avoir mis à jour les contrôles dans la tâche de session, envoyez explicitement les modifications via la connexion WebSocket existante.

    Comparez le clic avec la séquence d'arrière-plan. On voyage avec une demande-réponse ; l'autre arrive au fur et à mesure de l'avancement des travaux, tandis que l'interrogation fournit une solution de repli lorsque WebSocket n'est pas disponible.

    Choisissez un mécanisme par son déclencheur. Les réponses aux requêtes suivent les actions de l'utilisateur, le push suit les événements du serveur et les interrogations sont vérifiées à plusieurs reprises même lorsqu'aucun nouvel événement ne s'est produit.

    Ajoutez l’état de connexion et de mise à jour à la console. Expliquez les mécanismes sélectionnés dans la note d'architecture afin que les utilisateurs et les responsables puissent savoir comment les informations actuelles atteignent l'écran.

  4. LectureExercice de code avec l’IA · 20 min

    Construisez l’exemple TicketOpsLive de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.

    Lire le guide de la leçon (PDF)

  5. Quiz de connaissancesVérification des connaissances — Module 1 · 10 min · Note de réussite 80%
  6. Lab pratiqueLab — Construire la page d’état en direct · 45 min

    Objectif: Créez le premier écran de TicketOps Live : une page avec un bandeau d’état en direct, un label d’horloge, un indicateur de progression et un heartbeat serveur simulé qui met à jour le navigateur sans aucun clic de l’utilisateur. Critères d’acceptation : L’interface se met à jour une fois par seconde après que l’apprenant a cliqué sur Start ; Le navigateur affiche les modifications sans clic supplémentaire ; Stop désactive la boucle en moins d’une seconde ; Démarrer deux fois ne crée pas deux boucles concurrentes ; Le code vérifie si la page a été libérée (disposed).

Module 2: Contexte applicatif, sessions et cycle de vie

Module 2 du cours Applications temps réel avec push serveur — le parcours temps réel de Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas « À qui appartient l’interface : sessions, contexte, sortie et expiration », réussissez la vérification des connaissances, puis réalisez le lab pratique dans TicketOps Live.

  1. LectureGuide de la leçon · 14 min

    Sessions, contexte d’application et cycle de vie : piloter l’interface du bon utilisateur, éviter le piège des champs statiques et faire le ménage à la sortie et à l’expiration. Le concept, le modèle mental et les pièges en production — à lire avant le lab.

    Lire le guide de la leçon (PDF)

  2. LectureGuide du lab / de l’examen · 10 min

    Ce que vous allez construire dans le lab pratique, les tâches, l’implémentation suggérée et les critères d’acceptation.

    Lire le guide de la leçon (PDF)

  3. Leçon vidéoÀ qui appartient l’interface : sessions, contexte, sortie et expiration · 13 min

    À qui appartient l’interface : sessions, contexte, sortie et expiration — une vidéo pas à pas guidée du Module 2, que vous pouvez suivre directement ici dans le lecteur.

    Transcription de la narration

    Ouvrez l'exemple dans deux onglets du navigateur pour séparer l'identité de la propriété de la session. Le même utilisateur connecté peut avoir des instances d’interface distinctes qui ne doivent pas partager un état accidentel.

    Distinguez l'utilisateur, la session, le thread d'exécution, le contexte d'application et le service partagé. Un fil de discussion peut servir différents événements ; ce n'est pas l'objet qui possède les contrôles d'un utilisateur.

    Organisez les étiquettes de session, la liste du cycle de vie et les commandes dans Designer. Des noms de contrôle significatifs permettent de connecter chaque diagnostic visible à son gestionnaire lors de l’inspection du code du cycle de vie.

    Affichez les identifiants de session et de thread ensemble. Une session stable parallèlement à des threads changeants rend visibles leurs différentes durées de vie et explique pourquoi l'identité du thread ne peut pas identifier le propriétaire de l'interface.

    Capturez le contexte de l'application lors du chargement de la page et utilisez-le pour les mises à jour ultérieures. Guard a supprimé les contrôles et se désabonne à la sortie afin que les rappels en arrière-plan ne survivent pas à leur propriétaire.

    Comparez les journaux de cycle de vie dans les deux onglets. La fermeture de l'un libère son abonnement tandis que l'autre continue, démontrant un nettoyage limité à une session plutôt qu'un arrêt global.

    Placez chaque valeur avec son véritable propriétaire. Les contrôles et les services de session conservent l'état de la session ; Les services partagés globalement ne doivent pas stocker un utilisateur actuel dans des champs statiques.

    Créez l'inspecteur et écrivez une règle de nettoyage pour chaque abonnement et chaque tâche. Le journal résultant doit rendre compréhensibles la création et la publication du travail appartenant à la session.

  4. LectureExercice de code avec l’IA · 20 min

    Construisez l’exemple TicketOpsLive de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.

    Lire le guide de la leçon (PDF)

  5. Quiz de connaissancesVérification des connaissances — Module 2 · 10 min · Note de réussite 80%
  6. Lab pratiqueLab — Construire un inspecteur de session et un journal du cycle de vie · 45 min

    Objectif: Ajoutez un panneau de diagnostic qui permet au développeur de voir la session courante, le contexte d’application, les informations sur le navigateur et les événements de cycle de vie utiles aux mises à jour temps réel. Critères d’acceptation : Le compteur est propre à la session, et non statique ; Une mise à jour en arrière-plan modifie la bonne session du navigateur ; Le panneau de diagnostic indique quand la mise à jour en arrière-plan arrive ; L’apprenant sait expliquer ce qui se passe après une actualisation et après l’expiration de la session.

Module 3: Push serveur pour une session avec des tâches en arrière-plan

Module 3 du cours Applications temps réel avec push serveur — le parcours temps réel de Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas « Une progression sans actualisation : moniteur d’import en arrière-plan », réussissez la vérification des connaissances, puis réalisez le lab pratique dans TicketOps Live.

  1. LectureGuide de la leçon · 14 min

    Push mono-session : exécuter les traitements longs hors du gestionnaire de clic, signaler la progression, prendre en charge l’annulation coopérative et restaurer l’interface dans le bloc finally. Le concept, le modèle mental et les pièges en production — à lire avant le lab.

    Lire le guide de la leçon (PDF)

  2. LectureGuide du lab / de l’examen · 10 min

    Ce que vous allez construire dans le lab pratique, les tâches, l’implémentation suggérée et les critères d’acceptation.

    Lire le guide de la leçon (PDF)

  3. Leçon vidéoUne progression sans actualisation : moniteur d’import en arrière-plan · 13 min

    Une progression sans actualisation : moniteur d’import en arrière-plan — une vidéo pas à pas guidée du Module 3, que vous pouvez suivre directement ici dans le lecteur.

    Transcription de la narration

    Déplacez l'importation longue dans une tâche appartenant à sa session. La page peut rester réactive pendant que les progrès arrivent, au lieu de faire attendre l'utilisateur pour une longue demande.

    Traitez l'opération comme un cycle de vie : préparez les contrôles et l'annulation, démarrez la tâche, signalez la progression limitée et restaurez l'interface une fois terminée. Chaque sortie nécessite le même nettoyage.

    Créez le moniteur avec la progression, les décomptes, l'historique et les commandes explicites. Ces contrôles répondent à différentes questions : jusqu'où le travail a progressé, ce qui s'est passé et ce que l'utilisateur peut faire ensuite.

    Créez un état d'annulation avant de démarrer la tâche de session, puis revenez du clic. Cela donne à nouveau le contrôle au navigateur pendant que l'opération se poursuit dans le contexte d'application correct.

    Vérifiez l'annulation de manière coopérative à l'intérieur de la boucle. Mettre à jour la progression interne par enregistrement mais transmettre tous les dix enregistrements ; détectez les échecs et restaurez les contrôles dans finally afin qu'aucun résultat ne laisse Démarrer désactivé.

    Observez l'échec simulé après les mises à jour de progression en direct. Enregistrez les détails du diagnostic séparément du message utilisateur sécurisé, puis restaurez Démarrer pour que l'opération ayant échoué soit récupérable à partir de l'interface.

    Regroupez les modifications visibles et limitez les transmissions de progression, mais envoyez immédiatement la fin. Les utilisateurs ont plus besoin d'un résultat final fiable qu'une mise à jour réseau distincte pour chaque enregistrement traité.

    Annulation du test, échec délibéré, temps écoulé et résumé final dans le moniteur terminé. Chaque itinéraire doit se terminer par un statut compréhensible et des contrôles prêts pour l'action suivante.

  4. LectureExercice de code avec l’IA · 20 min

    Construisez l’exemple TicketOpsLive de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.

    Lire le guide de la leçon (PDF)

  5. Quiz de connaissancesVérification des connaissances — Module 3 · 10 min · Note de réussite 80%
  6. Lab pratiqueLab — Construire un moniteur d’import en arrière-plan · 45 min

    Objectif: Ajoutez à TicketOps Live un panneau d’import de longue durée réaliste. L’utilisateur peut lancer un import, suivre sa progression, l’annuler et examiner le résultat. Critères d’acceptation : Les mises à jour de progression apparaissent pendant l’exécution de l’opération ; L’annulation fonctionne et laisse l’interface utilisable ; L’échec est signalé sans exposer de stack traces brutes ; La mise à jour finale atteint toujours le navigateur tant que la session est active ; Le code ne pousse pas plus que nécessaire.

Module 4: Timers, polling de repli et cadence des mises à jour

Module 4 du cours Applications temps réel avec push serveur — le parcours temps réel de Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas « Quand le push ne suffit pas : cadence, timers et solutions de repli », réussissez la vérification des connaissances, puis réalisez le lab pratique dans TicketOps Live.

  1. LectureGuide de la leçon · 14 min

    Cadence de mise à jour et repli : choisir entre push, timers et polling, lisser les rafales et maîtriser le cycle de vie des timers pour chaque session. Le concept, le modèle mental et les pièges en production — à lire avant le lab.

    Lire le guide de la leçon (PDF)

  2. LectureGuide du lab / de l’examen · 10 min

    Ce que vous allez construire dans le lab pratique, les tâches, l’implémentation suggérée et les critères d’acceptation.

    Lire le guide de la leçon (PDF)

  3. Leçon vidéoQuand le push ne suffit pas : cadence, timers et solutions de repli · 13 min

    Quand le push ne suffit pas : cadence, timers et solutions de repli — une vidéo pas à pas guidée du Module 4, que vous pouvez suivre directement ici dans le lecteur.

    Transcription de la narration

    Choisissez un taux de rafraîchissement adapté à l'événement professionnel. Rendre chaque changement interne visible immédiatement peut consommer des ressources sans aider la personne qui lit l'écran.

    Adaptez le mécanisme au travail : push pour les événements, une minuterie Wisej.NET pour les actualisations périodiques et une tâche pour une seule opération. Le sondage reste une alternative en cas de besoin.

    Créez les contrôles d'intervalle à côté des étiquettes d'état visibles. L'affichage de la stratégie sélectionnée permet de connecter le paramètre d'un utilisateur au comportement de mise à jour résultant.

    Appliquez l'intervalle choisi à la minuterie tout en appliquant le minimum. La case à cocher d'interrogation contrôle si les requêtes répétées sont exécutées, ce qui fait de cette solution de secours un choix opérationnel explicite.

    Laissez les événements entrants marquer les données comme sales, puis actualisez-les une fois par tick de minuterie. Cela combine une série de modifications de modèle en une seule mise à jour d’interface utile.

    Comparez les intervalles de mise à jour affichés et leurs compromis en matière de ressources. Un feedback plus rapide crée plus de travail ; un retour plus lent peut sembler obsolète, tandis que l'interrogation préserve la livraison lorsque WebSocket disparaît.

    Conservez les modifications de modèle, le rendu, le push et les interrogations selon des calendriers distincts. Démarrage et arrêt de la minuterie propre, et empêche les ticks qui se chevauchent de créer des actualisations simultanées incontrôlées.

    Écrivez une politique de cadence pour trois fonctionnalités avec un taux par défaut et un taux maximum. Les contrôles et les solutions de repli devraient mettre en œuvre ces limites délibérées plutôt que d'encourager une actualisation sans restriction.

  4. LectureExercice de code avec l’IA · 20 min

    Construisez l’exemple TicketOpsLive de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.

    Lire le guide de la leçon (PDF)

  5. Quiz de connaissancesVérification des connaissances — Module 4 · 10 min · Note de réussite 80%
  6. Lab pratiqueLab — Ajouter le polling de repli et le contrôle de la cadence · 45 min

    Objectif: Enrichissez TicketOps Live d’un timer de rafraîchissement du tableau de bord et de contrôles permettant d’expérimenter la cadence de mise à jour. Critères d’acceptation : La cadence du timer change de façon visible ; Le nombre d’événements reçus peut augmenter plus vite que le nombre de mises à jour d’interface appliquées ; Le polling démarre et s’arrête avec le mode direct ; Aucun tick de timer ne se chevauche ; L’apprenant sait expliquer pourquoi le lissage des mises à jour est utile.

Module 5: Liaison de données en direct et grilles temps réel

Module 5 du cours Applications temps réel avec push serveur — le parcours temps réel de Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas « Tableau de tickets en direct : mettre à jour les données sans reconstruire l’écran », réussissez la vérification des connaissances, puis réalisez le lab pratique dans TicketOps Live.

  1. LectureGuide de la leçon · 14 min

    Liaison de données en direct : mettre à jour les collections liées dans le contexte de la session sans relier à nouveau la grille, en préservant la sélection, le tri et le défilement. Le concept, le modèle mental et les pièges en production — à lire avant le lab.

    Lire le guide de la leçon (PDF)

  2. LectureGuide du lab / de l’examen · 10 min

    Ce que vous allez construire dans le lab pratique, les tâches, l’implémentation suggérée et les critères d’acceptation.

    Lire le guide de la leçon (PDF)

  3. Leçon vidéoTableau de tickets en direct : mettre à jour les données sans reconstruire l’écran · 13 min

    Tableau de tickets en direct : mettre à jour les données sans reconstruire l’écran — une vidéo pas à pas guidée du Module 5, que vous pouvez suivre directement ici dans le lecteur.

    Transcription de la narration

    Gardez les modifications des tickets entrants visibles sans redémarrer le travail de l'utilisateur. Une grille dynamique réussit lorsqu'elle reflète de nouvelles données tout en préservant le contexte dans lequel quelqu'un lit ou modifie.

    Modifiez la collection liée plutôt que d'effacer la grille. La reconstruction supprime la sélection, le défilement, le tri et les modifications ; la notification à la couche de liaison permet à l'état de l'écran existant de survivre au changement de données.

    Construisez la grille autour de sa source de liaison et ajoutez un indicateur de changement silencieux. Les utilisateurs doivent remarquer les mises à jour entrantes sans qu'une boîte de dialogue de blocage n'interrompe leur tâche en cours.

    Laissez Ticket notifier les modifications de propriété et conserver les horodatages comme valeurs de date réelle. Les notifications prennent en charge les mises à jour incrémentielles, tandis que les dates saisies préservent des choix de tri et de formatage significatifs.

    Entrez le contexte de session capturé avant d'appliquer les événements de flux partagé. Mettez à jour la liste liée et notifiez les liaisons une fois, en gardant la propriété correcte tout en évitant les travaux d'actualisation répétés.

    Suivez la nouvelle ligne et le ticket résolu pendant que la sélection existante reste en place. Le message de conflit demande de l'attention sans abandonner l'état de l'écran via un rechargement.

    Utilisez des marqueurs temporaires pour révéler les lignes modifiées sans déplacer une modification active. Lorsque les modifications entrent en conflit, avertissez l'utilisateur et laissez-le décider au lieu de remplacer silencieusement son travail.

    Testez les modifications en direct avec une sélection et un filtre open-ticket déjà actifs. Le tableau doit mettre à jour ses données tout en gardant la place de l'utilisateur et le sens voulu du filtre.

  4. LectureExercice de code avec l’IA · 20 min

    Construisez l’exemple TicketOpsLive de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.

    Lire le guide de la leçon (PDF)

  5. Quiz de connaissancesVérification des connaissances — Module 5 · 10 min · Note de réussite 80%
  6. Lab pratiqueLab — Construire le tableau de tickets en direct · 45 min

    Objectif: Créez une `DataGridView` en direct qui affiche les tickets de support et se met à jour à l’arrivée d’événements de ticket simulés. Critères d’acceptation : Les nouveaux tickets apparaissent sans relier la grille entièrement ; Les tickets existants sont mis à jour sur place ; La ligne sélectionnée est préservée tant qu’elle existe encore ; Le rythme des mises à jour reste maîtrisé ; L’apprenant sait expliquer pourquoi la liste liée appartient à la session.

Module 6: Push multi-utilisateurs avec services et hubs d’événements

Module 6 du cours Applications temps réel avec push serveur — le parcours temps réel de Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas « D’une session à plusieurs : les événements de TicketHub », réussissez la vérification des connaissances, puis réalisez le lab pratique dans TicketOps Live.

  1. LectureGuide de la leçon · 14 min

    Push multi-utilisateur : un hub d’événements global lève des événements métier tandis que chaque session met à jour sa propre interface dans son propre contexte. Le concept, le modèle mental et les pièges en production — à lire avant le lab.

    Lire le guide de la leçon (PDF)

  2. LectureGuide du lab / de l’examen · 10 min

    Ce que vous allez construire dans le lab pratique, les tâches, l’implémentation suggérée et les critères d’acceptation.

    Lire le guide de la leçon (PDF)

  3. Leçon vidéoD’une session à plusieurs : les événements de TicketHub · 13 min

    D’une session à plusieurs : les événements de TicketHub — une vidéo pas à pas guidée du Module 6, que vous pouvez suivre directement ici dans le lecteur.

    Transcription de la narration

    Étendez les mises à jour des tickets sur plusieurs sessions sans donner au hub partagé la propriété de leurs écrans. Un événement professionnel peut toucher plusieurs superviseurs, mais chaque session doit appliquer ses propres changements visibles.

    Gardez le contrôle sur la page, le contexte avec la session et les données partagées avec le service. Le stockage des formulaires dans le hub mondial mélangerait les durées de vie et empêcherait la publication de sessions propres.

    Créez des commandes d'abonnement et de désabonnement explicites à côté de la liste de notification et de l'étiquette du tenant. Ces diagnostics rendent visibles la portée du destinataire et la durée de vie de l'abonnement lors du test du hub.

    Laissez le TicketHub partagé publier des événements et fournir des instantanés en toute sécurité entre les threads. Il ne peut pas choisir un contexte d'application car il possède des informations partagées plutôt que la session d'un utilisateur particulier.

    Capturez le contexte, chargez l’instantané et traitez les événements dans le contexte de la session. Avant de modifier les contrôles, vérifiez qu’ils n’ont pas été libérés et contrôlez les métadonnées du tenant. Désabonnez-vous lorsque le propriétaire de la session se termine.

    Comparez les destinataires lorsque chaque événement est publié. Les mises à jour de Contoso et Northwind restent dans les sessions prévues et la fermeture d'un abonné le supprime de sa livraison ultérieure.

    Transportez les métadonnées de routage avec l'événement et appliquez la politique de filtrage du destinataire. Lorsque les événements arrivent plus rapidement que le rendu ne peut le gérer, ajoutez une contre-pression plutôt que de permettre un retard illimité.

    Ajoutez un champ de métadonnées et une règle de filtrage au hub, puis documentez le nettoyage des abonnements. Montrez à la fois les destinataires corrects et la suppression des destinataires dont la session est terminée.

  4. LectureExercice de code avec l’IA · 20 min

    Construisez l’exemple TicketOpsLive de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.

    Lire le guide de la leçon (PDF)

  5. Quiz de connaissancesVérification des connaissances — Module 6 · 10 min · Note de réussite 80%
  6. Lab pratiqueLab — Construire le TicketHub et les notifications multi-utilisateurs · 45 min

    Objectif: Refactorisez la simulation de tickets en un service global `TicketHub` et faites en sorte que plusieurs sessions de navigateur reçoivent les événements de ticket en direct. Critères d’acceptation : Le hub ne stocke aucune référence à des pages ou à des contrôles ; Chaque session met à jour sa propre liste liée ; Fermer ou actualiser une session ne laisse pas d’abonné défaillant derrière elle ; Plusieurs sessions peuvent afficher des filtres différents tout en partageant la même source d’événements métier ; L’apprenant sait expliquer la différence entre diffusion et mise à jour ciblée.

Module 7: Durcissement pour la production, déploiement et projet de synthèse

Module 7 du cours Applications temps réel avec push serveur — le parcours temps réel de Wisej.NET. Lisez le guide de la leçon et le guide du lab / de l’examen, regardez la vidéo pas à pas « Revue de production : de la démo de push à l’application temps réel déployable », réussissez la vérification des connaissances, puis réalisez le lab pratique dans TicketOps Live.

  1. LectureGuide de la leçon · 14 min

    Durcissement pour la production : vérifier tout le chemin WebSocket, les sticky sessions, les contrôles de santé, la sécurité et l’observabilité avant le déploiement. Le concept, le modèle mental et les pièges en production — à lire avant le lab.

    Lire le guide de la leçon (PDF)

  2. LectureGuide du lab / de l’examen · 10 min

    Ce que vous allez construire dans le lab pratique, les tâches, l’implémentation suggérée et les critères d’acceptation.

    Lire le guide de la leçon (PDF)

  3. Leçon vidéoRevue de production : de la démo de push à l’application temps réel déployable · 13 min

    Revue de production : de la démo de push à l’application temps réel déployable — une vidéo pas à pas guidée du Module 7, que vous pouvez suivre directement ici dans le lecteur.

    Transcription de la narration

    Examinez TicketOps Live en tant que service déployé, et pas seulement une démonstration réussie. La gestion des connexions, la propriété de la session, le nettoyage et les diagnostics déterminent si le comportement en direct survit aux conditions de fonctionnement réelles.

    Vérifiez la prise en charge de WebSocket à chaque saut de réseau et préservez l'affinité de session. Un point de terminaison de serveur fonctionnel est insuffisant si un proxy bloque les mises à niveau ou achemine la session vers une autre instance.

    Ajoutez une page Diagnostics avec des étiquettes d’intégrité périodiquement actualisées. Les opérateurs ont besoin d'un compte rendu visible du comportement actuel de l'application plutôt que d'hypothèses basées sur sa configuration prévue.

    Restituez l’instantané d’intégrité de manière à ce que le mode de transport, les abonnements actifs et le taux de mise à jour soient visibles ensemble. Leur relation permet d’expliquer si une activité de repli ou une activité excessive affecte le fonctionnement.

    Choisissez les délais d'expiration, les intervalles d'interrogation et les limites d'intégrité pour le déploiement. Les paramètres de formation illustrent les options, mais les valeurs de production doivent refléter la charge de travail et l'infrastructure réelles.

    Surveillez le panneau de santé lorsque le proxy bloque une mise à niveau de WebSocket. Le passage à l'interrogation maintient les mises à jour disponibles et rend le transport dégradé explicite au lieu de présenter un échec silencieux.

    Examinez ensemble la résiliation, le désabonnement, la limitation, le contexte, la solution de secours, l'affinité et la sécurité. Une règle de cycle de vie manquante peut compromettre un flux d'événements par ailleurs correct une fois la démonstration terminée.

    Livrez la console avec sa liste de contrôle complétée et expliquez les décisions de propriété. Défendez la manière dont les sessions, le nettoyage, la cadence de mise à jour et les paramètres de déploiement prennent en charge le comportement réellement observé par les utilisateurs.

  4. LectureExercice de code avec l’IA · 20 min

    Construisez l’exemple TicketOpsLive de ce module avec ChatGPT ou Claude à partir d’un prompt prêt à l’emploi qui oriente le modèle vers la spécification du module, puis relisez, exécutez et étendez ce qu’il vous renvoie — y compris en le comparant à notre propre solution de référence sur GitHub.

    Lire le guide de la leçon (PDF)

  5. Quiz de connaissancesVérification des connaissances — Module 7 · 10 min · Note de réussite 80%
  6. Lab pratiqueLab — Terminer le projet de synthèse TicketOps Live prêt pour la production · 45 min

    Objectif: Terminez TicketOps Live et préparez-le pour une revue d’architecture de production. Critères d’acceptation : L’application s’exécute sans boucles ni abonnements en double ; L’interface reste réactive pendant le traitement en arrière-plan ; Chaque opération de longue durée gère les états de fin, d’annulation et d’échec ; Le hub multi-utilisateur ne conserve aucune référence directe à des pages ou à des contrôles ; Les grilles liées se mettent à jour de façon incrémentale ; L’apprenant sait justifier toutes les hypothèses de déploiement.