Icône du site Apprenez Delphi

Créez un client et un serveur Websocket robustes, évolutifs et en temps réel

Build A Robust Scalable Real time Websocket Client Server

HTTP is one of, if not the most, widely used client-server protocols. It has been serving up our favorite web pages, blogs, and even this site for many years through its lifetime carried on the shoulders of the reliable TCP. But technology is evolving, and over time it has become clear there are some limitations with HTTP. The first thing is that HTTP is unidirectional. With HTTP, the client starts the request first and the server responds. So for every resource, the client is the one who polling for the resource. Added to that, HTTP expects that each interaction has a timeout before it’s assumed that the server is not responding. How can an IDE Software create a robust and scalable real-time Web Socket and Server? Let’s find out all the answers in this post.

Quelles sont les solutions aux limitations HTTP ?

L'interrogation longue sert de solution aux limitations de la technologie basée sur HTTP. Dans ce cas, le client envoie une requête avec un délai d'attente long. Cela laisse au serveur beaucoup de temps pour répondre sans que la connexion n'expire en raison d'une inactivité ou d'une incapacité à répondre. C'était une solution jusqu'à un certain niveau, mais c'est très gourmand en ressources. C'est parce que les ressources du serveur sont réservées et dédiées au client pendant le long polling.

Les Websockets sont-ils une meilleure solution pour les limitations HTTP ?

Oui, les Websockets sont une meilleure solution pour aider à atténuer une partie de la limitation du délai d'attente HTTP. Les Websockets peuvent utiliser HTTP pour initialiser la connexion et, en utilisant la même connexion TCP, passer à un Websocket. Avec Websockets, nous avons une connexion bidirectionnelle persistante qui consomme moins de ressources que les longues interrogations. Le serveur et le client peuvent envoyer des messages à tout moment. Aujourd'hui, la plupart des navigateurs Web prennent en charge le protocole Websocket. La cinquième version de HTML (HTML5) inclut également la prise en charge des websockets. Ainsi, en général, les Websockets vous permettent de créer des applications client-serveur en temps réel.

Comment implémenter des applications Websocket avec le constructeur Delphi ou C++ ?

IPWorks a une solution complète pour implémenter à la fois le serveur et le client Websocket. Il a les composants suivants :

TipeCertMgr: ce composant utilisé pour stocker les certificats.

TipeWebSocketServer: Il s'agit du composant serveur qui accepte les requêtes des clients Websocket.

TipeWebSocketClient: Il s'agit du composant client qui peut se connecter à un serveur Websocket et envoyer ou recevoir des données.

TipeWebSocketProxy: ce composant accepte les connexions Websocket pour un serveur Websocket et redirige à la place vers un autre serveur.

En utilisant ces composants, vous pouvez développer une application client et serveur Websocket complète. Ces composants sont natifs et ne nécessitent aucune bibliothèque externe. De plus, les composants sont optimisés et fonctionnent efficacement. C'est très sécurisé avec le cryptage WebSocket Secure 256 bits. Ces composants sont thread-safe. En prime, ils ont également une bonne documentation pour commencer :

https://cdn.nsoftware.com/help/IWF/dlp/

Comment utiliser IPWorks WebSockets ?

IPWorks fournit une version d'essai gratuite de son pack de composants WebSocket pour le constructeur Delphi et C++. Vous pouvez évaluer ces composants dans votre application. Vous pouvez acquérir les composants à partir de ce lien :

https://www.nsoftware.com/ipworks/ws/download.aspx

Vous pouvez également utiliser le gestionnaire de packages GetIt pour rechercher des versions d'essai d'IPWorks :

https://getitnow.embarcadero.com

Le programme d'installation du composant IPWorks WebSockets est fourni avec une application de démonstration qui fonctionne immédiatement. Il a un joli petit serveur d'écho Websocket et une application cliente pour se connecter au serveur websocket.

Voici un WebSocket Delphi Démo du serveur

Voici un WebSocket Delphi Démo client

Comment créer un serveur WebSocket de démonstration dans RAD Studio Delphi ?

Pour créer un serveur Websocket à l'aide des composants IPWorks Websocket, faites simplement glisser et déposez un TipeWebSocketServer composant à un formulaire. Vous devez configurer des paramètres de base tels que le port à utiliser et s'il s'agit d'un serveur SSL ou non. S'il s'agit d'un serveur SSL, vous devez ajouter un TipeCertMgr composant et attribuez-y les détails du certificat. Une fois que vous avez défini tous les paramètres obligatoires, vous pouvez définir "Écoute” à true et il démarrera le serveur et acceptera les demandes des clients via le port. Le composant de serveur a de nombreux événements que vous pouvez gérer. Certains d'entre eux sont:

OnConnecté: se déclenche lorsqu'un nouveau client est connecté.

OnDataIn: Lorsque vous recevez des données d'un client

OnDéconnecté: se déclenche lorsque le client est déconnecté.

Une erreur: Cela appellera avec un ID de connexion, un code d'erreur et une description d'erreur pour une erreur.

Comment créer un client WebSocket de démonstration dans RAD Studio Delphi ?

Pour créer un client Websocket, vous pouvez utiliser le TipeWebSocketClient composant. Placez simplement le composant sur un formulaire, définissez des paramètres obligatoires et vous avez le client fonctionnel. Ensuite, vous pouvez appeler la procédure "Se connecter (ws://SERVER:PORT)” pour se connecter au serveur. Une fois votre travail terminé, vous pouvez vous déconnecter du serveur en appelant la procédure « Déconnecter ». Le client a également un événement similaire comme le serveur.

OnConnecté: se déclenche lorsqu'il est connecté au serveur.

OnDataIn: Lors de la réception des données du serveur.

OnDéconnecté: Déconnecté du serveur.

Une erreur: Cela appellera avec un code d'erreur et une description d'erreur pour une erreur.

IPWorks WebSockets est l'une des meilleures solutions pour développer des applications serveur client Websocket robustes, avancées et conviviales pour les développeurs.

Quitter la version mobile