Conexão persistente em torcido
Eu sou novo no Twisted e tenho uma pergunta. Como posso organizar uma conexão persistente no Twisted? Eu tenho uma fila e cada segundo verifica isso. Se tiver algum - envie no cliente. Não consigo encontrar algo melhor do que chamar dataReceived a cada segundo. Aqui está o código de implementação do 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 eu preciso, mas tenho certeza de que é uma solução muito ruim. Como posso fazer isso de maneira diferente (flexível e correta)? Obrigado.
P.S. - a idéia principal e o algoritmo: 1. O cliente se conecta ao servidor e aguarda 2. O servidor verifica se há atualizações e envia os dados ao cliente se algo mudar 3. O cliente faz algumas operações e aguarda outros dados