Постоянное соединение в витой
Я новичок в Twisted и у меня есть один вопрос. Как мне организовать постоянное соединение в Twisted? У меня есть очередь, и каждую секунду она проверяется. Если есть - отправьте на клиента. Я не могу найти что-то лучше, чем вызывать dataReceived каждую секунду. Вот код реализации протокола:
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
Это работает так, как мне нужно, но я уверен, что это очень плохое решение. Как я могу сделать это по-другому (гибкий и правильный)? Благодарю.
Постскриптум - основная идея и алгоритм: 1. Клиент подключается к серверу и ждет 2. Сервер проверяет наличие обновлений и передает данные клиенту в случае каких-либо изменений 3. Клиент выполняет некоторые операции, а затем ожидает другие данные