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.
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.
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.
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.
Cliquez sur le lien ci-dessous pour un exemple de code.
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