Existe-t-il un moyen de forcer self.transport.write (réponse) à écrire immédiatement sur sa connexion afin que l'appel suivant à self.transport.write (réponse) ne soit pas mis en mémoire tampon dans le même appel.Twisted transport.write
Nous avons un client avec un logiciel hérité que nous ne pouvons pas modifier, qui lit pour la première demande et recommence à lire, et le problème que j'ai est tordu joint les deux écritures qui casse le client toutes les idées que j'ai essayées deferreds mais je ne pense pas que cela vous aidera dans ce cas
Exemple:
self.transport.write("|123|") # amount of messages to follow
a loop to generate next message
self.transport.write("|message 1 text here|")
attendu:
|123|
|message 1 text here|
Résultat:
|123||message 1 text here|
Salut, je sais que c'est un vieux post mais pouvez-vous me dire qu'avez-vous fait pour résoudre ce problème? –
Pour ce que ça vaut, il est impossible de faire ce travail complètement fiable. Un jour, vous pourriez acheter un matériel de commutation ou de routage différent et votre application va se casser. Cette FAQ Twisted tente d'expliquer: http://twistedmatrix.com/trac/wiki/FrequentlyAskedQuestions#Whyisprotocol.dataReceivedcalledwithonlypartofthedataIcalledtransport.writewith – Glyph