[PYTHON] [Chat De Tornado] Erstellen Sie einen Chat mit WebSocket in Tornado

Einführung

Dieses Mal werde ich einen Chat mit Tornado erstellen, einem Webserver und Webframework von Python. Der Grund für die Verwendung von Tornado ist, dass es standardmäßig WebSocket unterstützt, sodass es einfach ist, Echtzeitdienste zu erstellen.

Was zu verwenden

Die folgenden zwei werden verwendet.

Verwenden Sie Tornado auf der Serverseite und jquery.ui.chatbox auf der Clientseite. Mit jquery.ui.chatbox können Sie relativ einfach einen Chat erstellen.

Code

Der folgende Code ist die Hauptverarbeitung auf der Serverseite. Es zeichnet die Nachrichten auf, die mit Personen gesendet wurden, die mit Kellnern und Nachrichten verbunden sind.

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)

Die Methode ** open ** registriert die Person, die eine Verbindung hergestellt hat, und sendet das Protokoll bisher an diese Person.

Die Methode ** on_message ** sendet die Nachricht, die gesendet wurde, als die Nachricht an andere Teilnehmer als Sie gesendet wurde. Fügen Sie außerdem die zu diesem Zeitpunkt gesendete Nachricht zum Protokoll hinzu.

Die Methode ** on_close ** entfernt den Konnektor von den Kellnern, wenn die Verbindung unterbrochen wird. Dies verhindert, dass die Nachricht an die nicht verbundene Person gesendet wird.

Fertiges Produkt

Das Folgende ist das fertige Produkt. Ich habe es in ungefähr einer Stunde geschafft, aber es funktioniert gut. Die Funktion besteht darin, dass Sie den Chat-Bildschirm öffnen und schließen können, indem Sie auf die Leiste oben klicken. スクリーンショット 2015-12-14 0.17.43.png

Beispielcode

Klicken Sie auf den Link unten, um den Beispielcode anzuzeigen.

abschließend

Diesmal habe ich mit Tornado eine Chat-App erstellt. Wenn Sie eine kleine Echtzeitanwendung in Python erstellen möchten, sollten Sie Tornado verwenden.

Recommended Posts

[Chat De Tornado] Erstellen Sie einen Chat mit WebSocket in Tornado
Lassen Sie uns einen Web-Chat mit WebSocket mit AWS serverless (Python) durchführen!
Machen Sie einen LINE BOT (Chat)
Verwenden eines Druckers mit Debian 10
Machen Sie eine Lotterie mit Python
Machen Sie ein Feuer mit kdeplot
Lassen Sie uns mit Python einen Web-Socket-Client erstellen. (Zugriffstoken-Authentifizierung)
Lassen Sie uns eine GUI mit Python erstellen.
Erstellen Sie mit TensorFlow eine Gesichtserkennung
Erstellen Sie ein Empfehlungssystem mit Python
Machen Sie einen Filter mit einer Django-Vorlage
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Erstellen Sie mit PySide einen Modelliterator
Machen Sie eine schöne Grafik mit Plotly
Verwenden einer Webkamera mit Raspberry Pi
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
Ich habe einen Pokerspielserver Chat-Holdem mit Websocket mit Python erstellt
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Erstellen Sie einen Videoplayer mit PySimpleGUI + OpenCV
Machen Sie einen seltenen Gacha-Simulator mit Flask
Erstellen Sie eine Notebook-Pipeline mit Kedro + Papermill
Machen Sie mit matplotlib eine teilweise gezoomte Figur
Erstellen Sie einen Kaskadenklassifizierer mit Google Colaboratory
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
Machen Sie eine Logikschaltung mit Perceptron (Multilayer Perceptron)
Machen Sie Ja Nein Popup mit Kivy
Lassen Sie uns mit flask-babel eine mehrsprachige Site erstellen
Machen Sie einen Waschtrocknungs-Timer mit Raspberry Pi
Erstellen Sie eine GIF-Animation mit Ordnerüberwachung
Ausgestattet mit einer Kartenfunktion mit payjp
Erstellen Sie ein Webframework mit Python! (1)
Machen wir mit Pylearn 2 eine dreiäugige KI
Erstellen Sie eine Desktop-App mit Python mit Electron
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie ein Webframework mit Python! (2)
Versuchen Sie, mit WebSocket mit Django (Swamp Dragon) eine Todo-Verwaltungssite zu erstellen.
Ein Memorandum, um WebDAV nur mit Nginx zu erstellen
Machen Sie Twitter Trend Bot mit Heroku + Python
Stellen Sie ein Überwachungsgerät mit einem Infrarotsensor her
Erstellen Sie mit Flask einen einfachen Punktbildgenerator
So erstellen Sie ein Wörterbuch mit einer hierarchischen Struktur.
Ich möchte ein Spiel mit Python machen
Versuchen Sie, in Python einen "Entschlüsselungs" -Code zu erstellen
Ersetzen wir UWSC durch Python (5) Machen wir einen Roboter
Versuchen Sie, mit Python eine Diedergruppe zu bilden
Machen Sie Urlaubsdaten mit Pandas zu einem Datenrahmen
Erstellen Sie mit Amazon Lex einen LINE WORKS-Bot
Lassen Sie uns mit SWIG ein Modul für Python erstellen
Erstellen Sie in Tornado einen HTTP-Server (Hello World)
Ich habe versucht, die Datenbank (sqlite3) mit kivy zu verwenden
(Memorandum) Erstellen Sie mit matplodlib ein 3D-Streudiagramm
Ich habe ein ○ ✕ Spiel mit TensorFlow gemacht
Kombinieren Sie sich wiederholende Zeichenfolgen mit regulären Python-Ausdrücken zu einer.
Geschichte der Verwendung von Resonas Software-Token mit 1Password
Machen Sie mit LINE + Flask einen morphologischen Analyse-Bot
Lassen Sie uns ein Befehls-Standby-Tool mit Python erstellen
[Übung] Erstellen Sie eine Watson-App mit Python! # 2 [Übersetzungsfunktion]