Swift WebSocket 使用方法
2018-08-22 本文已影响849人
steveMoriya
Swift 项目中遇到需要集成WebSocket,在查阅了相关文档后,决定使用Starscream这个第三方库
使用方法
第一步,集成pod
pod 'Starscream'
第二步,代码中引用
import Starscream
let webSocket = WebSocketSingle.shared
final class WebSocketSingle:NSObject,WebSocketDelegate {
// socket连接上函数
func websocketDidConnect(socket: WebSocketClient) {
}
// socket断开执行函数
func websocketDidDisconnect(socket: WebSocketClient, error: Error?) {
}
// 接收返回消息函数
func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
}
func websocketDidReceiveData(socket: WebSocketClient, data: Data) {
}
//构造单例数据
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()
}