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

Respuestas a la pregunta(1)

Su respuesta a la pregunta