Я реализую API со следующей базовой структурой:
- Запустить serverA
- Клиент подключается к serverA и отправляет данные
- ServerA обрабатывает данные и отправляет их на serverB
- ServerB отвечает serverA
- ServerA отвечает на запрос клиента на основе входных данных, полученных от serverB
Пока что я пробовал два решения:
1) Создайте стандартное TCP-соединение без витой пары, используя httplib для обработки запроса от serverA к serverB. Однако это эффективно блокирует сервер на время вызова httplib.
2) Создайте второй класс, наследующий от protocol.Protocol и используйте
factory = protocol.ClientFactory()
factory.protocol = Authenticate
reactor.connectSSL("localhost",31337,factory, ssl.ClientContextFactory())
для создания соединения между serverA и serverB. Однако при этом я, похоже, не могу получить доступ к исходному соединению клиент-серверA из обратных вызовов класса запроса.
Как правильно обрабатывать такую настройку в Twisted?