Partage de technologie

Explication détaillée de Socket.IO en python

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Socket.IO Il s'agit d'une bibliothèque de communication en temps réel, bidirectionnelle et événementielle basée sur WebSocket. Il a été initialement conçu pour Node.js, mais est désormais implémenté dans plusieurs langages, dont Python. En Python,python-socketio est une bibliothèque populaire qui vous permet d'implémenter facilement des clients et des serveurs Socket.IO. Cette bibliothèque est particulièrement utile pour créer des applications Web nécessitant un échange de données en temps réel, telles que des applications de chat, des systèmes de notification en temps réel, des jeux, etc.

Caractéristiques de Python-SocketIO

  • Communication bidirectionnelle: Le client et le serveur peuvent s'envoyer et recevoir des messages.
  • Se reconnecter automatiquement: Le client peut automatiquement tenter de se reconnecter au serveur, ce qui est particulièrement utile lorsque le réseau est instable.
  • événementiel: Le modèle de programmation basé sur les événements rend le développement plus intuitif et flexible.
  • Prise en charge multilingue: Bien que nous parlions ici de Python, l'écosystème Socket.IO prend en charge plusieurs langages et plates-formes pour une intégration facile.
  • Compatible avec WebSocket et les interrogations longues: Même dans les navigateurs plus anciens qui ne prennent pas en charge WebSocket, la communication en temps réel peut être réalisée grâce à des technologies telles que les interrogations longues.

Installer

Vous pouvez l'installer via pippython-socketio

pip install python-socketio

Si vous souhaitez également créer un serveur Web et qu'il fasse également office de serveur Socket.IO, vous devrez peut-être également installerFlask-SocketIO(Une extension Flask qui intègre Flask et Socket.IO) :

pip install Flask-SocketIO

Créer un serveur en utilisant Python-SocketIO

Ce qui suit est un simpleFlask-SocketIOExemple de serveur, qui utilise le framework Flask et intègre Socket.IO :

  1. from flask import Flask, render_template
  2. from flask_socketio import SocketIO, send
  3. app = Flask(__name__)
  4. app.config['SECRET_KEY'] = 'secret!'
  5. socketio = SocketIO(app)
  6. @app.route('/')
  7. def index():
  8. return render_template('index.html')
  9. @socketio.on('message')
  10. def handleMessage(msg):
  11. print('Message: ' + msg)
  12. send(msg, broadcast=True)
  13. if __name__ == '__main__':
  14. socketio.run(app)

Dans cet exemple, le serveur écoute/ Acheminez et restituez une page HTML (vous devez créer cette page vous-même et introduire la bibliothèque client Socket.IO).Le serveur écoute également un appel appelémessageévénement, lorsque cet événement est reçu, il imprime le contenu du message et diffuse le message à tous les clients connectés.

client

Côté client (généralement JavaScript dans le navigateur), vous devez importer la bibliothèque client Socket.IO et établir une connexion au serveur. Voici un exemple client simple :

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Socket.IO chat</title>
  5. <script src="//cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.0/socket.io.js"></script>
  6. <script>
  7. var socket = io('http://localhost:5000');
  8. socket.on('connect', function() {
  9. console.log('Connected to the server!');
  10. });
  11. socket.on('message', function(msg) {
  12. console.log('Received message: ' + msg);
  13. });
  14. function sendMessage() {
  15. var input = document.getElementById('messageInput');
  16. socket.emit('message', input.value);
  17. input.value = '';
  18. }
  19. </script>
  20. </head>
  21. <body>
  22. <input type="text" id="messageInput" autocomplete="off" /><button onclick="sendMessage()">Send</button>
  23. </body>
  24. </html>

Dans cet exemple, le client se connecte au serveur et écoutemessageévénement et définit unsendMessageFonction pour envoyer des messages au serveur.

Résumer

python-socketioetFlask-SocketIO Fournit des outils puissants pour créer des applications Web en temps réel. En tirant parti des WebSockets et d'un modèle de programmation basé sur les événements, vous pouvez facilement implémenter des fonctionnalités interactives complexes en temps réel.

Nous continuerons à mettre à jour et à partager du contenu pertinent à l'avenir.N'oubliez pas de faire attention !