如何 运行 多线程处理扭曲的缓冲数据?

How to run multiple threads on buffered data in twisted?

Image of an abstract model

我已经使用 python-socketIO 实现了这个模型,但是我无法在 twisted 中做类似的事情。我有一个数据输入,我以 8192 字节的块读取这个数据。这是二进制数据,因此需要在将其发送给客户端之前对其进行处理。但是我无法停止输入数据进行处理。在 python-socketIO 中,我曾经将函数作为后台任务处理此数据,同时继续获取更多数据。关于如何使用 python.

的扭曲库做类似的事情的任何想法

"background task" 我想你的意思是线程。您可以使用 Twisted 处理线程。涉及最少概念的最多方法是 deferToThread:

from twisted.internet.protocol import Protocol
from twisted.internet.threads import deferToThread

class YourProtocol(Protocol):
    def dataReceived(self, data):
        d = deferToThread(your_process_data, data)
        d.addCallback(your_result_handler)
        d.addErrback(your_error_handler)