為何要封裝:
便于其他共用一套WebSocket指令的項目使用,隱藏wss消息的通訊.
Starscream源碼在此,可以使用Carthage集成到項目中.
示例:(本人封裝的是一套機器人通過服務器轉發指令給客戶端的場景):
SDK項目結構
核心類是MDManager類,包括:
單例對象,用于連接Socket的一些必要的key和證書設置.
CreateRobot方法,用于創建一個MDRobot單例
MDManager
createRobot
createRobot
接下來就是包括所有連接及接收數據的管理類MDRobot:
下圖包括了一個delegate,這個接下來會講到;
接下來就是一些客戶端主動發給服務器的一些指令:
MDRobot
connectRobot
handle
connect內部實現了Starscream的閉包socket.onconnect和ondisconnect這些指令,在連接成功后我們發送了服務器規定的心跳數據,并且做了丟失處理,此處每發一次心跳則給心跳計數+1,然后在onData中每收到一次心跳回包則給心跳計數歸零.
onData
onData中包含了對接收到數據的處理每一種數據對應一個代理方法.
delegate
這樣我們就可以在想觀察指令的位置實現代理,發送指令就可以收到對應的指令的代理方法了.(待完善加入Rxswift監聽代理)