【MINA】用protobuf做编解码协议
SOCKET 协议 支持 java serial 与 AMF3 的混合协议 , 目前没有基于 xml 与 json 的实现。 协议说明: * 9个字节协议头+协议体. * * 协议头1-4字节表示协议长度 =协议体长度+9-4(去掉长度占的4字节) * * 协议头第5字节为标志字节: *------------------------ * 该字节的最低位为压缩位:0=协议体未压缩 1=协议体已经压缩, * 该字节的低2-4位为协议位: * 000=基于AMF3的协议, * 001=基于java serial协议 * 010=基于protobuf协议 * 5-8位未用,作为以后扩展 * ------------------------ * * 6-9字节表示命令号 * * 采用网络字节序的整数(高位在前,低位在后) 1-4协议长度 6-9cmd 1 2 3 4 5 标志位 6 7 8 9 数据( AMF3 或者 java serial ) 目前支持3种序列化协议。protobuf没有做额外的压缩,也没有做加密,但是将来都可以用标志位来做,这里另外两种不做解释,主要说protobuf 准备工作 protobuf-java-2.5.0.jar 自定义的proto文件ChatMsg.proto protoc.exe编译工具 编译命令proto.bat #ChatMsg.proto