Я хочу настроить связь между несколькими процессами Торнадо, каждый из которых действует как веб-серверы I.e. используя tornado.web.RequestHandler
. Идея заключается в том, что я хочу полностью спрятанную сеть между процессами. У меня есть 4 процесса, и я хочу, чтобы установить постоянный постоянную связь между ними с помощью tornado.tcpserver
и tornado.tcpclient
:Tornado TCP Server/Клиентская связь процесса
T1---T2
| \ /|
| \/ |
|/\ |
T3---T4
Я новичок в программировании TCP Однако в примере, который я видел в документации Торнадо: http://www.tornadoweb.org/en/stable/iostream.html Под Реализации для класса tornado.iostream.IOStream
после того, как установлен сокет, все сообщения выполнены, а затем сокет закрыт. В примере приводят код через блоки с обратными вызовами, каждый из которых выполняет свою обязанность.
Однако можно ли открыть TCP-соединение и иметь BaseIOStream.read_until_close()
в режиме ожидания и вызываться, только когда клиент пишет на сервер?
Другими словами, клиент и сервер остаются подключенными, и когда клиент пишет на сервер, он каким-то образом прерывает IOLoop Tornado, чтобы вызвать read()?
Или мое мышление ошибочно, и способ сделать это каждый раз, когда мне нужны процессы для связи, я устанавливаю новое TCP-соединение, выполняю работу и затем убиваю соединение? Это только кажется, что создание этой новое соединение каждый раз будет содержать много накладных расходов, а не оставляя открытым соединение ...
В основном мне интересно, есть ли у TCPServer что-то, что эквивалентно WebSocketHandler.on_message() –