2016-01-18 1 views
1

Je dois recevoir des requêtes d'interrogation longues d'un client javascript et, en fonction du message de requête, interroger constamment une API REST jusqu'à ce que true soit renvoyé. Est-ce quelque chose comme eventlet avec un modèle de filetage vert approprié pour cela? Si oui, quelle sera la meilleure façon de le gérer?Comment interroger simultanément un autre serveur lors de la réception de plusieurs demandes d'interrogation longues à partir de javascripts?

Javascript <==long polling ==> Python Server <==simple polling==> REST API 

Il peut y avoir un maximum de 200 sessions en parallèle du client Javascript, mais en général, il y aura 3-4 actif à la fois.

Répondre

1

Je ne vois pas une raison déclaré contre l'utilisation des sockets web .. donc je vais lier cette comparaison entre le long sondages et Websockets

In what situations would AJAX long/short polling be preferred over HTML5 WebSockets?

Il y a une tonne de bibliothèques existantes, vous pouvez utiliser à la fois python et js pour ce type de communication.

(mon vote est pour websockets)

Edit:
Quelques libs à considérer:
http://socket.io/

+0

Salut, merci pour la réponse. Mais ma question ne concerne pas les websockets vs les longues interrogations. Nous avons déjà quelques connexions websocket ouvertes sur notre site Web, donc vous voulez éviter plus. Ma requête principale est le framework python à utiliser pour gérer la connexion websocket/long polling entrante, interroger un autre serveur et quand le résultat est reçu, le renvoyer au client. – user3518471

1

Il est seulement question de goût - 200 sessions (même tous actifs) est pas un défi non plus pour Tornado, aiohttp, gevent. Je préfère personnellement Tornado et aiohttp sur gevent, Twisted ...

0

Pour des besoins donnés, vous pouvez utiliser absolument n'importe quelle bibliothèque/cadre et tout choix ira bien. Vous pouvez même utiliser les threads du système d'exploitation et ne pas ressentir les inconvénients. Ce qui compte ici, c'est quel outil votre équipe connaît le mieux.