2010-02-14 2 views
0

Nous implémentons un serveur de conversation en utilisant Tornado.Quel mutex/verrouillage/mécanisme d'attente à utiliser lors de l'écriture d'une application de conversation avec Tornado Web Framework

La prémisse est simple, un utilisateur ouvre une connexion HTTP ajax au serveur Tornado, et le serveur Tornado ne répond que lorsqu'un nouveau message apparaît dans la salle de discussion. Chaque fois que la connexion se ferme, même si un nouveau message est entré ou qu'une erreur/un dépassement de délai s'est produit, le client rouvre la connexion.

En regardant Tornado, la question se pose de savoir quelle bibliothèque pouvons-nous utiliser pour nous permettre de faire attendre ces appels sur un objet central qui les signalerait - A_NEW_MESSAGE_HAS_ARRIVED_ITS_TIME_TO_SEND_BACK_SOME_DATA. Pour décrire cela en termes Win32, chaque appel asynchrone serait représenté comme un thread qui serait suspendu sur un WaitForSingleObject(...) sur un Mutex/Event/etc. Central.

Nous fonctionnerons dans un environnement Python standard (Tornado), y a-t-il quelque chose de intégré que nous pouvons utiliser, avons-nous besoin d'une bibliothèque/serveur externe, est-ce quelque chose que Tornado recommande?

Merci

Répondre

2

Je suis à la recherche dans les meilleures options pour le développement d'une application de chat et regardait dans une tornade aussi bien. Cette coupe grossière Building the Realtime User Experience a un chapitre sur la construction d'une application de chat avec tornade qui pourrait vous être utile. Bonne chance :)

0

Tornado a un exemple de "chat" qui utilise une longue interrogation. Il contient tout ce dont vous avez besoin (ou en fait, probablement plus que nécessaire car il inclut une connexion tierce)

Questions connexes