Swift 項目中遇到需要集成WebSocket杜耙,在查閱了相關文檔后壳嚎,決定使用Starscream這個第三方庫
使用方法
第一步,集成pod
pod 'Starscream'
第二步意荤,代碼中引用
import Starscream
let webSocket = WebSocketSingle.shared
final class WebSocketSingle:NSObject,WebSocketDelegate {
// socket連接上函數(shù)
func websocketDidConnect(socket: WebSocketClient) {
}
// socket斷開執(zhí)行函數(shù)
func websocketDidDisconnect(socket: WebSocketClient, error: Error?) {
}
// 接收返回消息函數(shù)
func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
}
func websocketDidReceiveData(socket: WebSocketClient, data: Data) {
}
//構造單例數(shù)據(jù)
static let shared = WebSocketSingle()
private override init() {
}
}
// initSocket方法
func initWebSocketSingle () {
SingletonSocket.sharedInstance.socket.delegate = webSocket
}
//聲明webSocket單例
class SingletonSocket {
//socketURL為websocket地址
let socket:WebSocket = WebSocket(url: URL(string: socketURL)!)
class var sharedInstance : SingletonSocket{
struct Static{
static let instance:SingletonSocket = SingletonSocket()
}
if !Static.instance.socket.isConnected{
Static.instance.socket.connect()
}
return Static.instance
}
}
第三步,初始化socket,(一般放在appdelegate中)
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
initWebSocketSingle()
}