Conexión persistente en trenzado
Soy nuevo en Twisted y tengo una pregunta. ¿Cómo puedo organizar una conexión persistente en Twisted? Tengo una cola y cada segundo la revisa. Si tiene algo, envíe al cliente. No puedo encontrar algo mejor que llamar a los datos Recibidos cada segundo. Aquí está el código de implementación del Protocolo:
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
Funciona como lo necesito, pero estoy seguro de que es una solución muy mala. ¿Cómo puedo hacer eso de manera diferente (flexible y correcta)? Gracias.
PD - la idea principal y el algoritmo: 1. El cliente se conecta al servidor y espera 2. El servidor busca actualizaciones y envía datos al cliente si algo cambia 3. El cliente realiza algunas operaciones y luego espera otros datos