Websocket est un protocole de couche d'application qui permet une communication bidirectionnelle entre un client et un serveur. Le protocole WebSocket fonctionne d'abord en créant une poignée de main, puis un cadrage de messages implémenté sur TCP plutôt que HTTP de base.
Sockets websockets et d'autres technologies similaires telles que SSE (événements de serveur-ment) et WebBrTC sont utiles dans les applications où le serveur doit conserver une connexion ouverte aux clients connectés. Un excellent exemple de webockets utilisés dans les applications est une application de chat, des jeux multijoueurs en ligne et des outils en temps réel tels que l'analyse et les outils de collaboration.
Sockets websockets nous fournit une connexion bidirectionnelle complète entre le serveur et les clients connectés sur le Web. Cela signifie que le serveur et le client peuvent pousser les données une fois qu'il y a une connexion établie.
Dans ce tutoriel, je ne plongerai pas profondément dans la façon dont Sockets websockets travail. Au lieu de cela, je vais vous montrer comment vous pouvez utiliser Python pour implémenter une application simple à l'aide de WebSocket.
Si vous souhaitez en savoir plus sur HTTP, WebSocket et SSES, Consultez les autres tutoriels sur ce site expliquant leurs différences.
NOTE: Avant de commencer, nous supposons que vous connaissez des concepts de réseautage de base tels que les demandes HTTP et HTTP. Pour mettre en œuvre les concepts de ce tutoriel avec un certain degré de facilité, vous devez avoir des connaissances de programmation de base Python et JavaScript.
Étape 1: Configuration de l'environnement
Commençons à implémenter un serveur WebSocket simple pour utiliser le navigateur comme client pour se connecter au serveur.
Il est bon de noter que le but de cette implémentation n'est pas de créer une application massive mais de vous donner une compréhension de base de la façon dont vous pouvez utiliser Python et JavaScript pour créer des applications WebSocket.
Pour cela, nous devrons installer Python, de préférence Python 3.6+.
Nous utiliserons également le Websocket emballer.
https: // Websockets.lecture.IO / EN / STABLE / INDEX.html
Une fois que Python est installé, utilisez PIP pour installer le package WebSocket à l'aide de la commande ci-dessous:
pip install websocketsUne fois que vous avez le Sockets websockets Package installé, nous pouvons commencer à créer le serveur et un client pour se connecter.
Étape 2: Création du serveur
Commencez par créer un répertoire où nous allons servir l'application l'appeler Websocket.
À l'intérieur du répertoire, créez un fichier et appelez-le serveur.py
À l'intérieur du serveur.fichier py, ajoutez les lignes de code suivantes qui implémentent un serveur simple sur / url.
importer asyncioÀ l'intérieur du fichier serveur, nous importons les packages requis dans ce cas, asyncio, et Sockets websockets.
Ensuite, nous créons un gestionnaire qui prend les arguments Websocket et chemin. Le Websocket représente l'URL du serveur (localhost: 8000). Le chemin est l'URI pour le gestionnaire de notre cas, l'uri est /.
Nous procédons ensuite à attendre la connexion entrante et le message. Avec les données reçues, nous mettons en œuvre une action. Dans notre cas, une réponse simple avec le contenu des données reçues.
Étape 3: Création d'un client
Laissez-nous maintenant essayer d'implémenter un simple client pour se connecter au serveur. Nous utiliserons la console du navigateur comme client pour préserver la simplicité du tutoriel.
Créer un fichier et appeler le client.html. À l'intérieur du fichier, ajoutez le code suivant:
Enregistrez le fichier et ouvrez-le dans le navigateur.
Pour tester si la connexion fonctionne, cliquez sur le bouton et vérifiez la console de la réponse du serveur.
Une fois que vous avez cliqué sur le bouton, un message est envoyé au serveur. Le serveur répond ensuite avec le contenu du message, indiquant ainsi que la connexion est établie.
Conclusion
Pour ce tutoriel, nous avons vu comment utiliser le Python Websockets package pour implémenter un simple Websocket connexion.