Dauerhafte Verbindung in verdreht
Ich bin neu in Twisted und habe eine Frage. Wie kann ich eine dauerhafte Verbindung in Twisted organisieren? Ich habe eine Warteschlange und prüfe sie jede Sekunde. Wenn Sie welche haben - senden Sie diese an den Kunden. Ich kann nichts Besseres finden, als jede Sekunde dataReceived anzurufen. Hier ist der Code der Protokollimplementierung:
class SyncProtocol(protocol.Protocol):
# ... some code here
def dataReceived(self, data):
if(self.orders_queue.has_new_orders()):
for order in self.orders_queue:
self.transport.write(str(order))
reactor.callLater(1, self.dataReceived, data) # 1 second delay
Es funktioniert so, wie ich es brauche, aber ich bin mir sicher, dass es eine sehr schlechte Lösung ist. Wie kann ich das anders machen (flexibel und korrekt)? Vielen Dank.
P.S. - die Grundidee und der Algorithmus: 1. Der Client stellt eine Verbindung zum Server her und wartet. 2. Der Server sucht nach Aktualisierungen und sendet Daten an den Client, wenn sich etwas ändert. 3. Der Client führt einige Vorgänge aus und wartet dann auf andere Daten