Starscream二次封装

为何要封装:
便于其他共用一套WebSocket指令的项目使用,隐藏wss消息的通讯.
Starscream源码在此,可以使用Carthage集成到项目中.


示例:(本人封装的是一套机器人通过服务器转发指令给客户端的场景):


SDK项目结构

核心类是MDManager类,包括:
单例对象,用于连接Socket的一些必要的key和证书设置.
CreateRobot方法,用于创建一个MDRobot单例


MDManager

createRobot

接下来就是包括所有连接及接收数据的管理类MDRobot:
下图包括了一个delegate,这个接下来会讲到;
接下来就是一些客户端主动发给服务器的一些指令:


MDRobot
connectRobot
handle

connect内部实现了Starscream的闭包socket.onconnect和ondisconnect这些指令,在连接成功后我们发送了服务器规定的心跳数据,并且做了丢失处理,此处每发一次心跳则给心跳计数+1,然后在onData中每收到一次心跳回包则给心跳计数归零.

onData

onData中包含了对接收到数据的处理每一种数据对应一个代理方法.

delegate

这样我们就可以在想观察指令的位置实现代理,发送指令就可以收到对应的指令的代理方法了.(待完善加入Rxswift监听代理)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,800评论 19 139
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 13,905评论 6 13
  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,475评论 11 349
  • ———————————————回答好下面的足够了---------------------------------...
    恒爱DE问候阅读 5,706评论 0 4
  • 阅读源码之路终于开启了, 小白一枚, 大神们要多多照顾啊, 有什么建议可以评论或私信, 在此多谢了!!!! 概要 ...
    火之玉阅读 6,891评论 2 3