more refactoring

This commit is contained in:
Erik 2016-01-15 14:15:50 -05:00
parent ac460d8023
commit 3979b36f63
4 changed files with 9 additions and 15 deletions

View File

@ -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 {

View File

@ -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()
} }
} }

View File

@ -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 }

View File

@ -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: [])
} }
} }