我有一个基于此文档用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,并且您可以在这个示例中了解一些内容,这个示例也在本文中进行了解释。