gpt4 book ai didi

python - Tornado 相当于 Twisted 的 dataReceived 吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:49:41 25 4
gpt4 key购买 nike

首先使用 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

文档似乎没有建议任何“更干净”的方法(或就此而言的任何方法),那么我是否以正确的方式处理这个问题?

最佳答案

IOStream 中 Twisted 的 Protocol 等效的内容类似于 stream.read_until_close(callback=self.connectionLost, Streaming_callback=self.dataReceived)。但更惯用的做法是执行第二个示例中所做的操作,并使用其他读取方法(read_bytesread_until 等)来读出您需要的内容单独的 block 。请注意,IOStream 目前对协程不太友好(由于单独的关闭回调),因此最好编写通过显式回调直接与 IOStream 交互的代码。

关于python - Tornado 相当于 Twisted 的 dataReceived 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18669247/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com