Je rencontre des problèmes avec twisted.internet.reactor
Tous mes clients ont des environnements complètement identiques, mais seulement une certaine expérience de ce problème:réacteur Twisted ne pas appeler des fonctions de fil correctement
Ils correctement connectTCP
au serveur via ws
et premier échange de plusieurs messages. Environ une minute, ils doivent envoyer un message au serveur via la méthode
def execute(self, message, callback=None):
print(">>>", message, flush=True)
reactor.callFromThread(self._client_protocol_instance.send, message, callback)
self._client_protocol_instance.send
est défini comme suit:
def send(self, command, callback):
print("send", command, callback, flush=True)
timestamp = int(time() * 1000000)
msg = (command.strip() + " --timestamp:" + str(timestamp))
if _self._debug:
_self._commands[str(timestamp)] = msg
if callback is not None:
_self._callbacks[str(timestamp)] = callback
payload = msg.encode()
_self._status_controller.set_state(payload)
self.sendMessage(payload)
Première print
montre en stdout, mais seconde ne fonctionne pas. Je suppose que send
n'est pas exécuté. Après reactor.run()
, c'est la seule référence au reactor
dans le programme entier.
Killing le processus du client après que cela se produit est immédiatement détecté par le serveur, de sorte que la connexion était encore en vie à ce moment-là.
Ce qui pourrait être à l'origine de cela?