This commit is contained in:
Erik 2015-08-11 09:54:59 -04:00
parent b563334d14
commit 884b73c777
3 changed files with 20 additions and 27 deletions

View File

@ -36,7 +36,6 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
private let session:NSURLSession! private let session:NSURLSession!
private var closed = false private var closed = false
private var _connected = false
private var extraHeaders: [String: String]? private var extraHeaders: [String: String]?
private var fastUpgrade = false private var fastUpgrade = false
private var forcePolling = false private var forcePolling = false
@ -51,32 +50,25 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
private var pongsMissed = 0 private var pongsMissed = 0
private var pongsMissedMax = 0 private var pongsMissedMax = 0
private var postWait = [String]() private var postWait = [String]()
private var _polling = true
private var probing = false private var probing = false
private var probeWait = ProbeWaitQueue() private var probeWait = ProbeWaitQueue()
private var waitingForPoll = false private var waitingForPoll = false
private var waitingForPost = false private var waitingForPost = false
private var _websocket = false
private var websocketConnected = false private var websocketConnected = false
let logType = "SocketEngine" let logType = "SocketEngine"
var connected: Bool { private(set) var connected = false
return _connected private(set) var polling = true
} private(set) var websocket = false
weak var client: SocketEngineClient? weak var client: SocketEngineClient?
var cookies: [NSHTTPCookie]? var cookies: [NSHTTPCookie]?
var log = false var log = false
var polling: Bool {
return _polling
}
var sid = "" var sid = ""
var socketPath = "" var socketPath = ""
var urlPolling: String? var urlPolling: String?
var urlWebSocket: String? var urlWebSocket: String?
var websocket: Bool {
return _websocket
}
var ws:WebSocket? var ws:WebSocket?
public enum PacketType: Int { public enum PacketType: Int {
@ -214,8 +206,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
} }
sendWebSocketMessage("", withType: PacketType.Upgrade, datas: nil) sendWebSocketMessage("", withType: PacketType.Upgrade, datas: nil)
_websocket = true websocket = true
_polling = false polling = false
fastUpgrade = false fastUpgrade = false
probing = false probing = false
flushProbeWait() flushProbeWait()
@ -409,7 +401,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
options: NSJSONReadingOptions.AllowFragments) as? NSDictionary options: NSJSONReadingOptions.AllowFragments) as? NSDictionary
if let sid = json?["sid"] as? String { if let sid = json?["sid"] as? String {
self.sid = sid self.sid = sid
_connected = true connected = true
if !forcePolling && !forceWebsockets { if !forcePolling && !forceWebsockets {
createWebsocket(andConnect: true) createWebsocket(andConnect: true)
@ -442,7 +434,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
// A poll failed, tell the client about it // A poll failed, tell the client about it
private func handlePollingFailed(reason: String) { private func handlePollingFailed(reason: String) {
_connected = false connected = false
ws?.disconnect() ws?.disconnect()
pingTimer?.invalidate() pingTimer?.invalidate()
waitingForPoll = false waitingForPoll = false
@ -475,8 +467,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
(urlPolling, urlWebSocket) = createURLs(opts) (urlPolling, urlWebSocket) = createURLs(opts)
if forceWebsockets { if forceWebsockets {
_polling = false polling = false
_websocket = true websocket = true
createWebsocket(andConnect: true) createWebsocket(andConnect: true)
return return
} }
@ -731,9 +723,9 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
probing = true probing = true
probeWebSocket() probeWebSocket()
} else { } else {
_connected = true connected = true
probing = false probing = false
_polling = false polling = false
} }
} }
@ -748,8 +740,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate, SocketLogClient {
if websocket { if websocket {
pingTimer?.invalidate() pingTimer?.invalidate()
_connected = false connected = false
_websocket = false websocket = false
let reason = error?.localizedDescription ?? "Socket Disconnected" let reason = error?.localizedDescription ?? "Socket Disconnected"

View File

@ -26,10 +26,8 @@ import Foundation
public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient { public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient {
private var anyHandler:((SocketAnyEvent) -> Void)? private var anyHandler:((SocketAnyEvent) -> Void)?
public private(set) var status = SocketIOClientStatus.NotConnected
private var currentReconnectAttempt = 0 private var currentReconnectAttempt = 0
private var handlers = ContiguousArray<SocketEventHandler>() private var handlers = ContiguousArray<SocketEventHandler>()
public private(set) var secure = false
private var connectParams: [String: AnyObject]? private var connectParams: [String: AnyObject]?
private var reconnectTimer: NSTimer? private var reconnectTimer: NSTimer?
@ -45,6 +43,9 @@ public final class SocketIOClient: NSObject, SocketEngineClient, SocketLogClient
public let handleQueue: dispatch_queue_t! public let handleQueue: dispatch_queue_t!
public let emitQueue = dispatch_queue_create("emitQueue", DISPATCH_QUEUE_SERIAL) public let emitQueue = dispatch_queue_create("emitQueue", DISPATCH_QUEUE_SERIAL)
public private(set) var secure = false
public private(set) var status = SocketIOClientStatus.NotConnected
public var engine:SocketEngine? public var engine:SocketEngine?
public var nsp = "/" public var nsp = "/"
public var opts: [String: AnyObject]? public var opts: [String: AnyObject]?

View File

@ -272,8 +272,8 @@ extension SocketPacket {
} }
} }
extension SocketPacket { private extension SocketPacket {
private static func shred(data: AnyObject, inout binary: [NSData]) -> AnyObject { static func shred(data: AnyObject, inout binary: [NSData]) -> AnyObject {
if let bin = data as? NSData { if let bin = data as? NSData {
let placeholder = ["_placeholder" :true, "num": binary.count] let placeholder = ["_placeholder" :true, "num": binary.count]
@ -301,7 +301,7 @@ extension SocketPacket {
} }
} }
private static func deconstructData(var data: [AnyObject]) -> ([AnyObject], [NSData]) { static func deconstructData(var data: [AnyObject]) -> ([AnyObject], [NSData]) {
var binary = [NSData]() var binary = [NSData]()
for i in 0..<data.count { for i in 0..<data.count {