此工具分成三大部分。二进制设计,通讯协议,WebSocket客户端。
二进制设计,主要是用来设计通讯数据的二进制格式。当使用WebSocket作为底层通信的协议时,用户可以选择字符串型的格式,或者是二进制流格式。如果使用字符串型的格式,推荐使用JSON格式。当然也可以用其它的,XML等。至于选择二进制流格式,使用自定义的数据格式,也是可以的。实践上,只要支持三种基本数据类型,整形,字符串与数组。每种基本数据类型前加个数据前缀标识,说明紧接的数据的类型是什么,长度多少等。这就是个简化版的Protobuf。直接使用Protobuf格式通讯时,其实还是需要知道消息类型是什么,或者字符串长度是多少,或者安全方面的额外数据。这时,就需要二进制格式的设计了。比如,消息号+Protobuf数据,数据长度+消息名称+Protobuf数据,等等。Proto3版本,也可以使用自描述消息。Proto2版本,实践上,也可以使用一个通用的消息,只包含消息名称+数据,解析出数据后,使用消息名称再次解析数据,以便得出真的的数据。
通讯协议,是与业务相关的通讯消息的设计。比如登录消息,至少用户名,密码这两块数据。用户可以使用此工具快速设计出各种业务相关的通讯消息。并且,可以实时查看Proto2的消息原型,或者JSon格式的消息原型。所有设计时使用的名称,尽量只使用英文,数字和下划线的组合。最好以英文字母开头,以防止不必要的错误。本工具,使用了更加通用且简单的Proto2版本。
WebSocket客户端,是一个通讯实验工具。软件内置了一个WebSocket echo服务器,地址为:"ws://127.0.0.1:9999/"。如果只是最简单的测试,填写好"连接地址",按"连接"按钮,与服务器连接上后,使用"字符串"模式,就可以输入消息并通讯了。如果是使用"JSon"模式,那就需要首先选择通讯协议,然后选择具体消息并封装数据,最后才可以发送数据。如果是使用"Protobuf"模式,需要额外选择一下二进制格式。数据将会有两次封装。一次是业务通讯数据的封装,还有一次是底层通讯二进制数据的封装。通讯开始后,接收到服务器的消息时,日志框会出现提示,并且给出每条回复消息的"数据分析"的按钮。点击,可以查看具体数据。如果数据有二进制块,点击,并手动选择具体的消息格式。因为开发实践上,服务器开发往往早于客户端开发,导致客户端收到消息不能被解析。