Use callbacks instead of delegate methods for Starscream
This commit is contained in:
parent
d811b194eb
commit
ef02247a0c
@ -280,7 +280,6 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
|
||||
}
|
||||
|
||||
private func createWebSocketAndConnect() {
|
||||
ws?.delegate = nil // TODO this seems a bit defensive, is this really needed?
|
||||
var req = URLRequest(url: urlWebSocketWithSid)
|
||||
|
||||
addHeaders(to: &req)
|
||||
@ -288,10 +287,33 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
|
||||
ws = WebSocket(request: req)
|
||||
ws?.callbackQueue = engineQueue
|
||||
ws?.enableCompression = compress
|
||||
ws?.delegate = self
|
||||
ws?.disableSSLCertValidation = selfSigned
|
||||
ws?.security = security?.security
|
||||
|
||||
ws?.onConnect = {[weak self] in
|
||||
guard let this = self else { return }
|
||||
|
||||
this.websocketDidConnect()
|
||||
}
|
||||
|
||||
ws?.onDisconnect = {[weak self] error in
|
||||
guard let this = self else { return }
|
||||
|
||||
this.websocketDidDisconnect(error: error)
|
||||
}
|
||||
|
||||
ws?.onData = {[weak self] data in
|
||||
guard let this = self else { return }
|
||||
|
||||
this.parseEngineData(data)
|
||||
}
|
||||
|
||||
ws?.onText = {[weak self] message in
|
||||
guard let this = self else { return }
|
||||
|
||||
this.parseEngineMessage(message)
|
||||
}
|
||||
|
||||
ws?.connect()
|
||||
}
|
||||
|
||||
@ -607,10 +629,9 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: Starscream delegate conformance
|
||||
// MARK: WebSocket Methods
|
||||
|
||||
/// Delegate method for connection.
|
||||
public func websocketDidConnect(socket: WebSocketClient) {
|
||||
private func websocketDidConnect() {
|
||||
if !forceWebsockets {
|
||||
probing = true
|
||||
probeWebSocket()
|
||||
@ -621,8 +642,7 @@ public final class SocketEngine : NSObject, URLSessionDelegate, SocketEnginePoll
|
||||
}
|
||||
}
|
||||
|
||||
/// Delegate method for disconnection.
|
||||
public func websocketDidDisconnect(socket: WebSocketClient, error: Error?) {
|
||||
private func websocketDidDisconnect(error: Error?) {
|
||||
probing = false
|
||||
|
||||
if closed {
|
||||
|
||||
@ -27,7 +27,7 @@ import Foundation
|
||||
import Starscream
|
||||
|
||||
/// Protocol that is used to implement socket.io WebSocket support
|
||||
public protocol SocketEngineWebsocket : SocketEngineSpec, WebSocketDelegate {
|
||||
public protocol SocketEngineWebsocket : SocketEngineSpec {
|
||||
// MARK: Methods
|
||||
|
||||
/// Sends an engine.io message through the WebSocket transport.
|
||||
@ -66,16 +66,4 @@ extension SocketEngineWebsocket {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: Starscream delegate methods
|
||||
|
||||
/// Delegate method for when a message is received.
|
||||
public func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
|
||||
parseEngineMessage(text)
|
||||
}
|
||||
|
||||
/// Delegate method for when binary is received.
|
||||
public func websocketDidReceiveData(socket: WebSocketClient, data: Data) {
|
||||
parseEngineData(data)
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user