Je veux utiliser Twisted pour reconstruire la partie communication d'une application existante. Cette application envoie des données du client au serveur, seulement de cette façon, le serveur n'envoie rien.Envoyer à partir du client Twisted vers le serveur Twisted, seulement cette manière
Comment réaliser ceci avec le concept de Twisted? J'utilise actuellement la méthode connectionMade
de Protocol
, mais je ne pense pas que ce soit la bonne façon.
class Send(Protocol):
def connectionMade(self):
while True:
data = queue.get()
self.transport.write(data + "\n")
self.transport.doWrite()
Je suis assez sûr, cela est pas la façon de le faire. ;-)
Addition: Mon problème est, je ne peux pas l'imagerie quel événement à utiliser pour cela. Je pense que l'événement connectionMade
n'est pas le bon, mais je n'atteindrai jamais un autre événement que connectionLost
dans mon cas, car le serveur n'envoie rien au client. Devrais-je changer ce comportement?
http://stackoverflow.com/questions/1538617/http-download-very-big-file/1657324# 1657324 parle des dangers des boucles dans le code Twisted, et couvre également les producteurs/consommateurs qui pourraient également être utiles au questionneur. –
Oui, il semble raisonnable de ne pas utiliser de boucles ni de bloquer les appels dans les événements Twisted, cela rendrait le cadre événementiel insensé. –
pourquoi ne devriez-vous jamais appeler 'doWrite'? – Claudiu