Skip to content

Des opérations RDP à l'aveugle jusqu'au MS Store : histoire de la naissance de RDP Heartbeat

2026-03-29

Tags: [Journal de dev](/fr/blog/tags/#Journal de dev) · Produits · RDP · Windows

Prologue : L'intrus pendant les sessions de vibe coding

Je me connecte souvent à une machine RDP (Bureau à distance) en UDP pour écrire du code, m'installant dans cet état de concentration détendue du « vibe coding ».

Au fil du processus, il est inévitable de rencontrer des opérations chronophages : attendre une API lente, ou un script qui tourne en silence en arrière-plan. Quand l'écran reste figé sur une fenêtre pendant un long moment, c'est tout à fait normal. En général, je n'y prête pas attention, je navigue sur le web ou je m'installe dans mon fauteuil en attendant.

Mais j'ai fini par découvrir un phénomène exaspérant : parfois, la tâche était terminée depuis longtemps — c'est juste mon affichage RDP qui avait complètement gelé.

Je ne suis pas sûr que les connexions TCP pures souffrent du même problème (la latence TCP étant relativement élevée, je préfère la fluidité de l'UDP), mais en mode UDP, ce « gel de Schrödinger » existe bel et bien.

Le pire scénario : Ce n'est pas déconnecté — c'est juste devenu aveugle

Si le réseau est mauvais et que RDP affiche « Connexion perdue », c'est en fait une bonne chose — au moins je sais qu'il faut me reconnecter.

Le plus torturant, c'est que bien que l'écran ne se mette plus à jour, les événements clavier et souris sont toujours envoyés !

Imaginez la scène : je fixe un écran figé, pensant que le script n'a pas encore terminé. Poussé par l'impatience, je bouge la souris — aucune réaction. Je clique aveuglément, tape sur Entrée plusieurs fois pour essayer de le « réveiller »... rien que du silence.

Finalement, je ferme manuellement la fenêtre RDP et me reconnecte. C'est seulement là que je découvre avec horreur : tous ces clics et frappes à l'aveugle ont été exécutés sur la machine distante. Opérer sans retour visuel est le cauchemar de tout développeur.

Pas besoin de panneaux complexes — juste un regard rassurant

Mon exigence était extrêmement simple et pure : une petite chose, flottant silencieusement dans un coin de l'écran, indéfiniment.

Tant qu'elle clignote, je sais que l'affichage se met à jour en temps réel et je peux attendre sereinement la réponse de l'API. Si elle s'arrête, je réalise immédiatement : « Ah, encore gelé, faut se reconnecter » — évitant parfaitement une catastrophe d'opérations aveugles.

Un heureux accident : L'effet « Keep-Alive » quasi magique

C'est ainsi qu'est né RDP Heartbeat. Conçu pour être le plus discret possible — click-through, sans jamais interférer avec les opérations normales. Sa seule mission : vous apporter ce petit peu de « confirmation visuelle » dont vous avez le plus besoin en travail à distance.

Mais quelque chose d'intéressant s'est produit : une fois que je l'ai utilisé, les gelés d'affichage RDP sont devenus incroyablement rares.

C'était une surprise totale. Mon hypothèse : comme cette lumière pulsante effectue en permanence des rafraîchissements au pixel près dans le coin de l'écran, cette mise à jour continue agit comme un mécanisme de « keep-alive » au niveau applicatif, maintenant un flux de données actif pour la session RDP. Honnêtement, je n'ai pas exploré en profondeur les mécanismes de protocole réseau sous-jacents, donc je ne peux pas l'affirmer avec certitude. En bref : ça marche comme par magie.

Puisque c'est fait, pourquoi ne pas le publier (et les pièges rencontrés)

En regardant cette petite chose clignoter silencieusement dans le coin, je me suis dit que d'autres développeurs souffrant des mêmes maux pourraient en bénéficier. J'ai donc décidé de le publier sur le Microsoft Store.

Il s'est avéré que c'était une décision incroyablement torturante.

Comme je l'avais écrit en Python, tout le processus d'empaquetage et de publication a été une épopée de larmes et de sang : Code source Python → exe via PyInstaller → installateur Inno Setup → finalement paquet MSIX. Comparé à l'expérience fluide d'empaquetage de WinUI 3 natif, ce workflow était un chemin de montagne sinueux.

Je dois aussi admettre qu'une application de bureau en Python manque un peu de raffinement visuel.

Plans futurs

Quand j'aurai le temps, je prévois d'écrire un article détaillé sur tout le processus d'empaquetage de Python à MSIX. Ce n'est certainement pas la solution optimale, mais c'est un chemin viable — j'espère qu'il aidera ceux qui veulent publier leurs outils Python sur le Store.

Quant à RDP Heartbeat lui-même, j'espère trouver le temps de le réécrire entièrement en WinUI 3 natif, pour rendre cette petite lumière pulsante encore plus fluide et élégante.

Si vous aussi vous fixez souvent des écrans distants figés ou souffrez des gelés intempestifs de RDP, essayez ce petit outil. J'espère qu'il préservera la bonne humeur de chacune de vos sessions de vibe coding.

Obtenir sur le Microsoft Store

En savoir plus sur RDP Heartbeat