我非常喜欢AMP。 twisted.protocols.amp
功能适中且相对容易测试(尽管关于如何测试用它编写的应用程序的文档有点缺乏)。
AMP 提供的命令/响应抽象是舒适和熟悉的(毕竟,我们生活在一个 HTTP 获胜的世界)。AMP 避免了 SOAP 直接陷入的过度复杂性(似乎是为了复杂性)的陷阱。但这并不是那么简单,您将无法使用它来完成这项工作(LineReceiver
很可能是这样)。
有一些中间步骤 - 例如,twisted.protocols.basic.Int32Receiver
为您提供更复杂的框架机制(32 位长度前缀而不是魔法字节终止行) - 但在我看来,AMP 是协议的一个非常好的首选。您可能会发现您想稍后切换到其他东西(一种尺寸确实不能适合所有),但 AMP 处于功能和简单性之间的最佳位置,似乎非常适合非常广泛的应用程序。
AMP 中确实存在一些内置的长度限制。这是一个长期存在的痛处,只是在等待有实际需要的人来解决它。:) 有一个经过深思熟虑的设计来解除这个限制(不破坏协议兼容性!)。如果 AMP 似乎对您有吸引力,那么我鼓励您加入 Twisted 开发社区,了解如何帮助实现这一目标。;)
还总是可以选择使用 AMP 进行消息传递并设置另一个通道(例如 HTTP)来传输更大的数据块。