[PYTHON] [Chat De Tornado] Créez un chat en utilisant WebSocket dans Tornado

introduction

Cette fois, je vais créer une discussion en utilisant Tornado, qui est un serveur Web et un framework Web créés par Python. La raison d'utiliser Tornado est qu'il prend en charge WebSocket par défaut, il est donc facile de créer des services en temps réel.

Quoi utiliser

Les deux suivants sont utilisés.

Utilisez Tornado côté serveur et jquery.ui.chatbox côté client. L'utilisation de jquery.ui.chatbox facilite la création d'une discussion.

code

Le code suivant est le traitement principal côté serveur. Il enregistre les messages envoyés avec les personnes connectées aux serveurs et les messages.

class ChatHandler(tornado.websocket.WebSocketHandler):

    waiters = set()
    logs = []

    def open(self, *args, **kwargs):
        self.waiters.add(self)
        self.write_message({'logs': self.logs})

    def on_message(self, message):
        message = json.loads(message)
        self.logs.append(message)
        for waiter in self.waiters:
            if waiter == self:
                continue
            waiter.write_message({'img_path': message['img_path'], 'message': message['message']})

    def on_close(self):
        self.waiters.remove(self)

La méthode ** open ** enregistre la personne qui s'est connectée et envoie le journal jusqu'à présent à cette personne.

La méthode ** on_message ** diffuse le message envoyé lorsque le message a été envoyé à des participants autres que vous. Ajoutez également le message envoyé à ce moment au journal.

La méthode ** on_close ** supprime le connecteur des serveurs lorsque la connexion est perdue. Cela empêche le message d'être diffusé à la personne déconnectée.

Produit fini

Ce qui suit est le produit fini. Je l'ai fait en environ une heure, mais cela fonctionne bien. La fonctionnalité est que vous pouvez ouvrir et fermer l'écran de discussion en cliquant sur la barre en haut. スクリーンショット 2015-12-14 0.17.43.png

Exemple de code

Cliquez sur le lien ci-dessous pour un exemple de code.

en conclusion

Cette fois, j'ai créé une application de chat en utilisant Tornado. Si vous souhaitez créer une petite application en temps réel en Python, vous devez utiliser Tornado.

Recommended Posts

[Chat De Tornado] Créez un chat en utilisant WebSocket dans Tornado
Faisons une discussion WEB en utilisant WebSocket avec AWS sans serveur (Python)!
Créer un LINE BOT (chat)
Utiliser une imprimante avec Debian 10
Faites une loterie avec Python
Faire un feu avec kdeplot
Créons un client de socket Web avec Python. (Authentification par jeton d'accès)
Faisons une interface graphique avec python.
Créer un outil de reconnaissance de visage à l'aide de TensorFlow
Créer un système de recommandation avec python
Créer un filtre avec un modèle django
Faisons un graphe avec python! !!
Faisons un spacon avec xCAT
Créer un itérateur de modèle avec PySide
Faire un joli graphique avec plotly
Utiliser une webcam avec Raspberry Pi
J'ai essayé de créer une application todo en utilisant une bouteille avec python
J'ai créé un chat-holdem de serveur de jeu de poker en utilisant websocket avec python
Faisons un jeu de shiritori avec Python
Créer un lecteur vidéo avec PySimpleGUI + OpenCV
Créez un simulateur de gacha rare avec Flask
Créez un pipeline de notebook avec Kedro + Papermill
Faire une figure partiellement zoomée avec matplotlib
Créez un classificateur en cascade avec Google Colaboratory
Faisons un langage simple avec PLY 1
Faire un circuit logique avec Perceptron (Perceptron multicouche)
Faire Oui Non Popup avec Kivy
Faisons un site multilingue en utilisant flask-babel
Faire une minuterie de lavage-séchage avec Raspberry Pi
Créer une animation GIF avec surveillance des dossiers
Equipé d'une fonction carte utilisant payjp
Créez un framework Web avec Python! (1)
Faisons une IA à trois yeux avec Pylearn 2
Créez une application de bureau avec Python avec Electron
Faisons un bot Twitter avec Python!
Créez un framework Web avec Python! (2)
Essayez de créer un site de gestion Todo en utilisant WebSocket avec Django (Swamp Dragon)
Un mémorandum pour faire WebDAV uniquement avec nginx
Créer un bot Twitter Trend avec heroku + Python
Fabriquer un appareil de surveillance avec un capteur infrarouge
Créez un simple générateur d'images par points avec Flask
Comment créer un dictionnaire avec une structure hiérarchique.
Je veux faire un jeu avec Python
Essayez de créer un code de "décryptage" en Python
Remplaçons UWSC par Python (5) Faisons un robot
Essayez de créer un groupe de dièdre avec Python
Transformez les données de vacances en une trame de données avec les pandas
Créer un bot LINE WORKS avec Amazon Lex
Faisons un module pour Python en utilisant SWIG
Créer un serveur "Hello World" (HTTP) dans Tornado
J'ai essayé d'utiliser la base de données (sqlite3) avec kivy
(Mémorandum) Créer un diagramme de dispersion 3D avec matplodlib
J'ai créé un jeu ○ ✕ avec TensorFlow
Combinez des chaînes répétitives en une seule avec des expressions régulières Python.
Histoire de l'utilisation du jeton logiciel de Resona avec 1Password
Faire un bot d'analyse morphologique de manière lâche avec LINE + Flask
Faisons un outil de veille de commande avec python
[Pratique] Créez une application Watson avec Python! # 2 [Fonction de traduction]