more refactoring
This commit is contained in:
parent
ac460d8023
commit
3979b36f63
@ -24,17 +24,14 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public final class SocketEngine: NSObject, SocketEngineSpec, SocketEnginePollable, SocketEngineWebsocket {
|
public final class SocketEngine: NSObject, SocketEnginePollable, SocketEngineWebsocket {
|
||||||
public let emitQueue = dispatch_queue_create("com.socketio.engineEmitQueue", DISPATCH_QUEUE_SERIAL)
|
public let emitQueue = dispatch_queue_create("com.socketio.engineEmitQueue", DISPATCH_QUEUE_SERIAL)
|
||||||
public let handleQueue = dispatch_queue_create("com.socketio.engineHandleQueue", DISPATCH_QUEUE_SERIAL)
|
public let handleQueue = dispatch_queue_create("com.socketio.engineHandleQueue", DISPATCH_QUEUE_SERIAL)
|
||||||
public let parseQueue = dispatch_queue_create("com.socketio.engineParseQueue", DISPATCH_QUEUE_SERIAL)
|
public let parseQueue = dispatch_queue_create("com.socketio.engineParseQueue", DISPATCH_QUEUE_SERIAL)
|
||||||
|
|
||||||
public var invalidated = false
|
|
||||||
public var postWait = [String]()
|
public var postWait = [String]()
|
||||||
public var probing = false
|
|
||||||
public var waitingForPoll = false
|
public var waitingForPoll = false
|
||||||
public var waitingForPost = false
|
public var waitingForPost = false
|
||||||
public var websocketConnected = false
|
|
||||||
|
|
||||||
public private(set) var closed = false
|
public private(set) var closed = false
|
||||||
public private(set) var connected = false
|
public private(set) var connected = false
|
||||||
@ -43,8 +40,10 @@ public final class SocketEngine: NSObject, SocketEngineSpec, SocketEnginePollabl
|
|||||||
public private(set) var fastUpgrade = false
|
public private(set) var fastUpgrade = false
|
||||||
public private(set) var forcePolling = false
|
public private(set) var forcePolling = false
|
||||||
public private(set) var forceWebsockets = false
|
public private(set) var forceWebsockets = false
|
||||||
|
public private(set) var invalidated = false
|
||||||
public private(set) var pingTimer: NSTimer?
|
public private(set) var pingTimer: NSTimer?
|
||||||
public private(set) var polling = true
|
public private(set) var polling = true
|
||||||
|
public private(set) var probing = false
|
||||||
public private(set) var session: NSURLSession?
|
public private(set) var session: NSURLSession?
|
||||||
public private(set) var sid = ""
|
public private(set) var sid = ""
|
||||||
public private(set) var socketPath = "/engine.io"
|
public private(set) var socketPath = "/engine.io"
|
||||||
@ -171,6 +170,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, SocketEnginePollabl
|
|||||||
|
|
||||||
pingTimer?.invalidate()
|
pingTimer?.invalidate()
|
||||||
closed = true
|
closed = true
|
||||||
|
invalidated = true
|
||||||
connected = false
|
connected = false
|
||||||
|
|
||||||
if websocket {
|
if websocket {
|
||||||
@ -468,7 +468,6 @@ public final class SocketEngine: NSObject, SocketEngineSpec, SocketEnginePollabl
|
|||||||
waitingForPoll = false
|
waitingForPoll = false
|
||||||
waitingForPost = false
|
waitingForPost = false
|
||||||
websocket = false
|
websocket = false
|
||||||
websocketConnected = false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Send an engine message (4)
|
/// Send an engine message (4)
|
||||||
@ -506,7 +505,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, SocketEnginePollabl
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func upgradeTransport() {
|
private func upgradeTransport() {
|
||||||
if websocketConnected {
|
if ws?.isConnected ?? false {
|
||||||
DefaultSocketLogger.Logger.log("Upgrading transport to WebSockets", type: logType)
|
DefaultSocketLogger.Logger.log("Upgrading transport to WebSockets", type: logType)
|
||||||
|
|
||||||
fastUpgrade = true
|
fastUpgrade = true
|
||||||
@ -536,8 +535,6 @@ public final class SocketEngine: NSObject, SocketEngineSpec, SocketEnginePollabl
|
|||||||
|
|
||||||
// Delagate methods
|
// Delagate methods
|
||||||
public func websocketDidConnect(socket: WebSocket) {
|
public func websocketDidConnect(socket: WebSocket) {
|
||||||
websocketConnected = true
|
|
||||||
|
|
||||||
if !forceWebsockets {
|
if !forceWebsockets {
|
||||||
probing = true
|
probing = true
|
||||||
probeWebSocket()
|
probeWebSocket()
|
||||||
@ -549,7 +546,6 @@ public final class SocketEngine: NSObject, SocketEngineSpec, SocketEnginePollabl
|
|||||||
}
|
}
|
||||||
|
|
||||||
public func websocketDidDisconnect(socket: WebSocket, error: NSError?) {
|
public func websocketDidDisconnect(socket: WebSocket, error: NSError?) {
|
||||||
websocketConnected = false
|
|
||||||
probing = false
|
probing = false
|
||||||
|
|
||||||
if closed {
|
if closed {
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public protocol SocketEnginePollable: SocketEngineSpec {
|
public protocol SocketEnginePollable: SocketEngineSpec {
|
||||||
var invalidated: Bool { get set }
|
var invalidated: Bool { get }
|
||||||
var session: NSURLSession? { get }
|
var session: NSURLSession? { get }
|
||||||
var waitingForPoll: Bool { get set }
|
var waitingForPoll: Bool { get set }
|
||||||
var waitingForPost: Bool { get set }
|
var waitingForPost: Bool { get set }
|
||||||
@ -211,7 +211,6 @@ extension SocketEnginePollable {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public func stopPolling() {
|
public func stopPolling() {
|
||||||
invalidated = true
|
|
||||||
session?.finishTasksAndInvalidate()
|
session?.finishTasksAndInvalidate()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,8 +37,8 @@ import Foundation
|
|||||||
var parseQueue: dispatch_queue_t! { get }
|
var parseQueue: dispatch_queue_t! { get }
|
||||||
var pingTimer: NSTimer? { get }
|
var pingTimer: NSTimer? { get }
|
||||||
var polling: Bool { get }
|
var polling: Bool { get }
|
||||||
var postWait: [String] { get set }
|
var postWait: [String] { get set } // Would like to change to get only
|
||||||
var probing: Bool { get set }
|
var probing: Bool { get } // Would like to change to get only
|
||||||
var emitQueue: dispatch_queue_t! { get }
|
var emitQueue: dispatch_queue_t! { get }
|
||||||
var handleQueue: dispatch_queue_t! { get }
|
var handleQueue: dispatch_queue_t! { get }
|
||||||
var sid: String { get }
|
var sid: String { get }
|
||||||
|
|||||||
@ -26,7 +26,6 @@
|
|||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
public protocol SocketEngineWebsocket: SocketEngineSpec, WebSocketDelegate {
|
public protocol SocketEngineWebsocket: SocketEngineSpec, WebSocketDelegate {
|
||||||
var websocketConnected: Bool { get set }
|
|
||||||
var ws: WebSocket? { get }
|
var ws: WebSocket? { get }
|
||||||
|
|
||||||
func sendWebSocketMessage(str: String, withType type: SocketEnginePacketType, withData datas: [NSData])
|
func sendWebSocketMessage(str: String, withType type: SocketEnginePacketType, withData datas: [NSData])
|
||||||
@ -35,7 +34,7 @@ public protocol SocketEngineWebsocket: SocketEngineSpec, WebSocketDelegate {
|
|||||||
// WebSocket methods
|
// WebSocket methods
|
||||||
extension SocketEngineWebsocket {
|
extension SocketEngineWebsocket {
|
||||||
func probeWebSocket() {
|
func probeWebSocket() {
|
||||||
if websocketConnected {
|
if ws?.isConnected ?? false {
|
||||||
sendWebSocketMessage("probe", withType: .Ping, withData: [])
|
sendWebSocketMessage("probe", withType: .Ping, withData: [])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user