Websocket是应用层第七层上的一个应用层协议,它必须依赖 HTTP 协议进行一次握手 ,握手成功后,数据就直接从TCP 通道传输,与 HTTP 无关了。
Socket.IO是 个基于WebSocket的实时通信库,在主流平台都有很好的 支持, 此次项目开发主要是通过iOS的socket.io-client-swift库来实现 。开发主要包括两步:
1、通过cocoapods集成socket.io-client-swift。
use_frameworks!
target'YourApp'do
pod'Socket.IO-Client-Swift','~> 13.1.0’
2、库调用及代码编写
Socket.IO中事件的处理主要通过这两个法来实现:
on(_ event: String, callback: NormalCallback)
emit(_ event: String, _ items: AnyObject...)
on为接收事件的方法,emit为发送事件的方法。
本项目实现中详细包括了socket实例化过程中的cookie配置及query参数传输,较一般教程细致和全面,相当于包教会,具体见Demo: https://github.com/iOSliuh/Socket.io-iOS 。