为何要封装:
便于其他共用一套WebSocket指令的项目使用,隐藏wss消息的通讯.
Starscream源码在此,可以使用Carthage集成到项目中.
示例:(本人封装的是一套机器人通过服务器转发指令给客户端的场景):
核心类是MDManager类,包括:
单例对象,用于连接Socket的一些必要的key和证书设置.
CreateRobot方法,用于创建一个MDRobot单例
接下来就是包括所有连接及接收数据的管理类MDRobot:
下图包括了一个delegate,这个接下来会讲到;
接下来就是一些客户端主动发给服务器的一些指令:
connect内部实现了Starscream的闭包socket.onconnect和ondisconnect这些指令,在连接成功后我们发送了服务器规定的心跳数据,并且做了丢失处理,此处每发一次心跳则给心跳计数+1,然后在onData中每收到一次心跳回包则给心跳计数归零.
onData中包含了对接收到数据的处理每一种数据对应一个代理方法.
这样我们就可以在想观察指令的位置实现代理,发送指令就可以收到对应的指令的代理方法了.(待完善加入Rxswift监听代理)