在第一次使用 Twisted 之后,我可能没有以正确的方式使用 Tornado 解决双向通信的问题。
Twisted 接收数据的方式是:
class MyProtocol(Protocol):
def dataReceived(self, data):
# Figure out if this is a chunk of a previous message
# or if it's a new message
我正在使用 Tornado 执行此操作,这似乎有效,但有些不同:
class MyClient(object):
@coroutine
def main_loop(self):
while True:
message_header = yield Task(self.stream.read_bytes, 8)
# Read/write from here
该文档似乎没有建议任何“更清洁”的方法(或任何方法,就此而言),所以我是否以正确的方式进行?