如何在SwiftNIO TCP服务器和基于Python的TCP客户端之间传输数据



我有一个基于此文档用SwiftNIO编写的TCP服务器。

我希望我的客户端是用CCD_ 2编写的,从中我可以发送多个CCD_;可以在几分钟内周期性地接收类似/不同的多个CCD_ 4字符串作为响应。

我需要将来自CCD_ 6客户端的那些CCD_;如何在SwiftNIO服务器上获得相同的JSON字符串(反之亦然(?

如果我是你,我会使用Vapor web服务器和任何Python HTTP库(如requests(来使用HTTP。如果你这样做,那么你的工作将非常简单。Vapor社区在他们的Discord聊天中也非常有用。

如果你真的想在SwiftNIO这样的底层库中实现这一点,那么这当然是可能的,但你需要设计一个所谓的";有线协议";用于成帧(即一个JSON消息何时开始和结束(。SwiftNIO在这些方面做得很好,但你可能需要学习很多东西。

例如,您可以使用NIOExtras的LineBasedFrameDecoder并发送每个JSON(确保它不包含换行符(,然后发送一个n。或者你可以说你在JSON前面加了一个32位长度的字段(你可以用LengthFieldBasedFrameDecoder解码(。有很多选项…

您还可以实现JSON-RPC,并且您可以在这个示例中了解一些内容,这个示例也在本文中进行了解释。

最新更新