IRONSOFTWAREHOME
MISES À JOUR POUR LES DÉVELOPPEURS

Socket io .NET (Comment ça fonctionne pour les développeurs)

Jacob Mellor, Directeur technique @ Team Iron
Jacob Mellor
Updated: 8 mai 2026

Le serveur Socket.IO se présente comme une bibliothèque robuste, facilitant la communication en temps réel, bidirectionnelle et pilotée par événements. Il est largement utilisé dans les applications Web pour des tâches telles que les applications de chat, les mises à jour en direct et les plateformes collaboratives. Bien que Socket.IO soit généralement associé à JavaScript, il peut également être utilisé efficacement côté client avec C#. Parfois, le client peut être un navigateur web. Dans cet article, nous allons explorer comment configurer et utiliser un client Socket.IO dans un environnement C#. Nous passerons en revue quelques exemples de base et conclurons avec les avantages et les cas d'utilisation potentiels.

Méthodes pour établir des connexions Socket.IO

La connexion Socket.IO peut être établie avec différents transports de bas niveau :

  • HTTP long-polling

  • Web Sockets

  • Transport Web

Socket io .NET (Comment ça marche pour les développeurs) : Figure 1 - Application de communication client-serveur

Créer un Projet Console dans Visual Studio 2022

Ouvrez Visual Studio et sélectionnez Créer un nouveau projet dans la fenêtre de démarrage.

Pour créer une application console dans Visual Studio 2022, lancez Visual Studio et sélectionnez "Créer un nouveau projet" depuis la fenêtre de démarrage. Choisissez le modèle "Application Console", configurez le projet avec un nom et un emplacement, et assurez-vous que .NET 6.0 est sélectionné.

Qu'est-ce que Socket.IO ?

Socket.IO, une bibliothèque JavaScript, permet aux clients et serveurs web de s'engager dans une communication en temps réel. Il se compose de deux parties :

Parties de Socket IO

  • Bibliothèque côté client : fonctionne dans le navigateur.
  • Bibliothèque côté serveur : fonctionne sur Node.js.

Installer les Paquets Nécessaires

Pour utiliser Socket.IO pour les applications .NET dans Visual Studio, vous aurez besoin d'une implémentation serveur compatible. Une telle implémentation est le SocketIoClientDotNet for .NET, qui permet à un client Socket.IO de se connecter à un Socket.IO depuis une application C#.

Tout d'abord, installez les paquets NuGet requis. Vous pouvez le faire via la Console du Package Manager ou en ajoutant les références à votre fichier de projet :

PM > Install-Package SocketIoClientDotNet

Capture d'écran du paquet SocketIoClientDotNet

Socket io .NET (How It Works For Developers): Figure 3 - Install Socket.IO for NET using the Manage NuGet Package for Solution by searching "SocketIoClientDotNet" package name in the search bar of NuGet Package Manager, then select the project and click on the Install button.

Exécuter cette commande incorporera la bibliothèque cliente Socket.IO dans votre projet .NET, permettant à votre application C# de se connecter avec un serveur Socket.IO, facilitant la communication entre les utilisateurs et le système.

Créer Socket.IO

Avant de plonger dans le client C#, créons un exemple de base de Socket IO en utilisant un .NET Core Console App dans Visual Studio. Cela nous aidera à tester l'implémentation du client.

Création d'implémentations serveur

Le code suivant met en place un serveur Socket.IO de base en C# qui écoute les connexions clientes sur le port 3000. Lorsqu'un client envoie un message, le serveur journalise le message et répond au client en confirmant la réception.

using System;
using System.Net.WebSockets;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Quobject.SocketIoClientDotNet.Client;

namespace DemoApp
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Connect to the Socket.IO server
            var socket = IO.Socket("http://localhost:3000");

            // Listen for the "connect" event
            socket.On(Socket.EVENT_CONNECT, () =>
            {
                Console.WriteLine("Connected to the server!");

                // Emit a message to the server
                socket.Emit("message", "Hello from C# client!");

                // Listen for messages from the server
                socket.On("message", (data) =>
                {
                    Console.WriteLine("Message from server: " + data);
                });
            });

            // Listen for the "disconnect" event
            socket.On(Socket.EVENT_DISCONNECT, () =>
            {
                Console.WriteLine("Disconnected from the server!");
            });

            // Keep the console window open
            Console.ReadLine();
        }
    }
}

Explication du Code

Dans l'extrait de code, nous créons d'abord une instance de client Socket.IO en appelant IO.Socket("http://localhost:3000"), qui se connecte au serveur local fonctionnant sur le port 3000 sur la machine client.

Lors de la connexion réussie (Socket.EVENT_CONNECT), nous imprimons un message indiquant que nous sommes connectés au serveur.

Ensuite, nous émettons un message du client au serveur en utilisant socket.Emit("message", "Hello from C# client!"). Cela envoie un message avec le contenu "Hello from C# client!" au serveur.

Ensuite, nous écoutons les messages du serveur en enregistrant un rappel pour l'événement "message" à l'aide de `socket.On("message", (data) => { ... }). Lorsque le serveur envoie un événement "message", la fonction de rappel est invoquée, et nous imprimons le message reçu sur la console.

Si la connexion au serveur est déconnectée du client (Socket.EVENT_DISCONNECT), nous imprimons un message indiquant la déconnexion.

Enfin, la méthode Console.ReadLine() garde la fenêtre de console ouverte pour que le programme ne se termine pas immédiatement après l'exécution. Cela nous permet de voir la sortie et assure que le programme ne se termine pas prématurément.

Capture d'écran du code

Socket io .NET (Comment ça marche pour les développeurs) : Figure 4 - Exemple de code

HTTP long-polling

Le long-polling est une technique utilisée dans le développement web qui utilise une bibliothèque pour envoyer des messages entre un client (généralement un navigateur web) et un serveur. Il permet une communication en temps réel en déclenchant des événements sur le serveur, qui peuvent alors être reçus par le client sans besoin de sondage continu. Cette méthode est particulièrement utile pour les applications nécessitant des mises à jour immédiates, telles que les applications de chat ou les tickers boursiers.

Socket io .NET (Comment ça marche pour les développeurs) : Figure 5 - Long-polling HTTP

Web Sockets

WebSocket facilite la communication bidirectionnelle en établissant des canaux de communication full-duplex sur une seule connexion TCP. Ce protocole permet une interaction en temps réel entre un client, généralement un navigateur web, et un serveur, permettant aux deux parties d'échanger des messages de manière asynchrone.

Établissement de la Communication WebSocket

Le client envoie une demande de poignée de main WebSocket au serveur, indiquant son désir d'établir une connexion WebSocket. Après avoir reçu la demande de poignée de main, le serveur répond par une réponse de poignée de main WebSocket, indiquant que la connexion a été établie avec succès. Les messages envoyés via la connexion WebSocket peuvent être dans n'importe quel format (par exemple, texte ou binaire) et peuvent être envoyés et reçus de manière asynchrone.

Web Transport

Web Transport, en tant que protocole de pointe, introduit des fonctionnalités supplémentaires pour améliorer la communication web au-delà des limitations des protocoles traditionnels comme TCP et UDP. En exploitant UDP et QUIC, il répond aux lacunes de ses prédécesseurs, le rendant plus convivial et efficace. Pour les utilisateurs, cela se traduit par une latence réduite et un meilleur contrôle de la congestion, offrant finalement une expérience web plus fluide et plus réactive. De plus, Web Transport offre de meilleures mesures de sécurité, assurant une transmission de données plus sûre par rapport à TCP. Avec ces avancées, Web Transport atténue les aspects chronophages du transfert de données, optimisant la performance globale pour les clients et les serveurs.

Voici un exemple de base de la façon dont Web Transport peut être utilisé dans une application web :

using System;
using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;

namespace SocketIO.Demo
{
    class Program
    {
        static async Task Main(string[] args)
        {
            // The WebSocket URI
            string uri = "wss://echo.websocket.org";

            // Creating a new WebSocket connection
            using (ClientWebSocket webSocket = new ClientWebSocket())
            {
                await webSocket.ConnectAsync(new Uri(uri), CancellationToken.None);
                Console.WriteLine("Connected to the server");

                // Sending data over the WebSocket
                byte[] sendBuffer = new byte[] { 1, 2, 3, 4 };
                await webSocket.SendAsync(new ArraySegment<byte>(sendBuffer), WebSocketMessageType.Binary, true, CancellationToken.None);
                Console.WriteLine("Data sent to the server");

                // Receiving data from the WebSocket
                byte[] receiveBuffer = new byte[1024];
                WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(receiveBuffer), CancellationToken.None);
                byte[] data = new byte[result.Count];
                Array.Copy(receiveBuffer, data, result.Count);
                Console.WriteLine("Received data: " + BitConverter.ToString(data));
            }
        }
    }
}

Dans cet exemple, nous créons d'abord une nouvelle connexion WebSocket à un serveur en utilisant une URL WebSocket (wss://echo.websocket.org). Ensuite, nous créons un flux bidirectionnel sur la connexion et envoyons quelques données ([1, 2, 3, 4]) sur le flux. Enfin, nous lisons des données du flux et les enregistrons dans la console.

Sortie du code ci-dessus

Lorsque vous exécutez l'application avec le serveur d'écho WebSocket, la sortie devrait ressembler à ceci :

Socket io .NET (Comment ça marche pour les développeurs) : Figure 6 - Sortie de la console pour la connexion WebSocket en utilisant une URL WebSocket.

Avantages de Web Transport

  • Alternative Moderne : Web Transport fournit une alternative moderne aux protocoles de communication web traditionnels comme TCP et UDP.
  • Transfert de Données Efficace : Il offre un transfert de données efficace en utilisant des flux multiplexés et des fonctionnalités avancées.
  • Hautes Performances : Idéal pour construire des applications web à haute performance qui exigent une faible latence et un transfert de données fiable.
  • Flux Multiplexés : Prend en charge les flux multiplexés, permettant l'envoi et la réception simultanés de plusieurs flux de données sur une seule connexion.
  • Innovation : À mesure que les développeurs web continuent d'adopter Web Transport, nous pouvons nous attendre à voir plus d'innovation dans les protocoles de communication web.
  • Expérience Utilisateur Améliorée : L'adoption de Web Transport peut conduire à des expériences utilisateur améliorées sur le web grâce à un transfert de données plus rapide et plus fiable.

Introduction de la Bibliothèque IronPDF

IronPDF est une bibliothèque PDF .NET complète spécialement conçue pour les développeurs travaillant avec C#. Cet outil puissant permet aux développeurs de créer, manipuler et lire facilement des fichiers PDF dans leurs applications. Avec IronPDF, les développeurs peuvent générer des documents PDF à partir de chaînes HTML, fichiers HTML et URL, le rendant très polyvalent pour divers cas d'utilisation. De plus, IronPDF offre des fonctionnalités avancées d'édition PDF comme l'ajout d'en-têtes, de pieds de page, de filigranes, et bien plus encore. Son intégration transparente dans les projets C# via le Package Manager NuGet simplifie le processus de travail avec des fichiers PDF, rationalise le développement et améliore la productivité.

Socket io .NET (Comment ça marche pour les développeurs) : Figure 7 - IronPDF for .NET : La bibliothèque PDF C#

Installer avec le gestionnaire de packages NuGet

Installez IronPDF dans Visual Studio ou depuis la ligne de commande en utilisant le Package Manager NuGet. Dans Visual Studio, allez à la console :

  • Outils -> Package Manager NuGet -> Console du Package Manager

PM > Install-Package IronPdf

Exemple de code IronPDF

Voici un exemple simple utilisant IronPDF pour convertir des données binaires en fichier PDF. Appelez la méthode GeneratePDF dans la méthode Main et passez les données comme paramètre que nous avions dans l'exemple ci-dessus :

using System;
using System.Net.WebSockets;
using System.Threading;
using System.Threading.Tasks;

namespace SocketIO.Demo
{
    class Program
    {
        static async Task Main(string[] args)
        {
            // The WebSocket URI
            string uri = "wss://echo.websocket.org";

            // Creating a new WebSocket connection
            using (ClientWebSocket webSocket = new ClientWebSocket())
            {
                await webSocket.ConnectAsync(new Uri(uri), CancellationToken.None);
                Console.WriteLine("Connected to the server");

                // Sending data over the WebSocket
                byte[] sendBuffer = new byte[] { 1, 2, 3, 4 };
                await webSocket.SendAsync(new ArraySegment<byte>(sendBuffer), WebSocketMessageType.Binary, true, CancellationToken.None);
                Console.WriteLine("Data sent to the server");

                // Receiving data from the WebSocket
                byte[] receiveBuffer = new byte[1024];
                WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(receiveBuffer), CancellationToken.None);
                byte[] data = new byte[result.Count];
                Array.Copy(receiveBuffer, data, result.Count);
                Console.WriteLine("Received data: " + BitConverter.ToString(data));

                // Data to generate in PDF file
                string pdfData = BitConverter.ToString(data);
                PDFGenerator.GeneratePDF(pdfData);
            }
        }
    }
}

Code de la Classe de Génération PDF

using IronPdf;

namespace SocketIO.Demo
{
    public class PDFGenerator
    {
        public static void GeneratePDF(string data)
        {
            IronPdf.License.LicenseKey = "Your-Licence-Key-Here";
            Console.WriteLine("PDF Generating Started...");

            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            Console.WriteLine("PDF Processing ....");

            var pdf = renderer.RenderHtmlAsPdf($"<h1>Received Data</h1><p>{data}</p>");
            string filePath = "Data.pdf";
            pdf.SaveAs(filePath);
            Console.WriteLine($"PDF Generation Completed. File Saved as {filePath}");
        }
    }
}

Sortie

Socket io .NET (Comment ça marche pour les développeurs) : Figure 8 - Sortie de la console utilisant Socket.IO et IronPDF

Dans le code fourni, IronPDF est utilisé pour générer un document PDF à partir d'une chaîne hexadécimale reçue via une connexion WebSocket. La méthode GeneratePDF initialise IronPDF avec une clé de licence et utilise son instance ChromePdfRenderer pour rendre la chaîne hexadécimale en contenu HTML dans un PDF en utilisant la méthode RenderHtmlAsPdf. Vous pouvez obtenir votre clé de licence gratuite depuis ici. Ce PDF est ensuite enregistré localement sous le nom "Data.pdf" en utilisant la méthode SaveAs. L'intégration d'IronPDF permet une conversion sans faille des données dynamiques WebSocket en un format PDF structuré, démontrant son utilité dans la transformation de flux de données en temps réel en documents archivés.

Fichier PDF généré

Socket io .NET (Comment ça marche pour les développeurs) : Figure 9 - PDF généré en sortie à l'aide d'IronPDF

Conclusion

Utiliser Socket.IO avec C# introduit de nombreuses opportunités pour des interactions en temps réel avec des clients connectés, allant au-delà du domaine de JavaScript et Node.js. Intégrer des outils comme Socket.IO et IronPDF dans vos projets .NET peut significativement améliorer la communication en temps réel et les capacités de gestion des PDF. Socket.IO facilite la communication en temps réel et bidirectionnelle transparente entre clients et serveurs, tandis qu'IronPDF offre des fonctionnalités robustes pour créer et manipuler des documents PDF sans effort.

Jacob Mellor, Directeur technique @ Team Iron
Directeur technique

Jacob Mellor est directeur de la technologie chez Iron Software et un ingénieur visionnaire pionnier de la technologie C# PDF. En tant que développeur à l'origine de la base de code centrale d'Iron Software, il a façonné l'architecture des produits de l'entreprise depuis sa création, la transformant aux côtés du PDG Cameron Rimington en une entreprise de plus de 50 personnes au service de la NASA, de Tesla et d'agences gouvernementales mondiales.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

OR
bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.9

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 749 $