我一直想用一个通过 tcp 连接连接的 iOS 应用程序来试验这个项目Axon 。在文档的末尾,该协议被解释为
有线协议很简单,非常类似于 zeromq,其中是一个 BE 24 位无符号整数,表示最大长度约为 16mb。数据字节目前仅用于存储编解码器,例如“json”只是1,然后客户端收到的JSON消息将通过选择相同的编解码器自动为您解码。
有图
octet: 0 1 2 3 <length>
+------+------+------+------+------------------...
| meta | <length> | data ...
+------+------+------+------+------------------...
我有使用二进制协议创建数据包的经验,例如:
NSUInteger INT_32_LENGTH = sizeof(uint32_t);
uint32_t length = [data length]; // data is an NSData object
NSMutableData *packetData = [NSMutableData dataWithCapacity:length + (INT_32_LENGTH * 2)];
[packetData appendBytes:&requestType length:INT_32_LENGTH];
[packetData appendBytes:&length length:INT_32_LENGTH];
[packetData appendData:data];
所以我的问题是你将如何为 Axon 请求创建数据包,我会假设一些位移,我不太了解。