refactoring

This commit is contained in:
Erik 2015-11-17 12:34:22 -05:00
parent db63aa63c2
commit e0c794cb9f
6 changed files with 21 additions and 28 deletions

View File

@ -1283,6 +1283,7 @@
SDKROOT = appletvos; SDKROOT = appletvos;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
TVOS_DEPLOYMENT_TARGET = 9.0;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";
}; };
@ -1333,6 +1334,7 @@
SDKROOT = appletvos; SDKROOT = appletvos;
SKIP_INSTALL = YES; SKIP_INSTALL = YES;
TARGETED_DEVICE_FAMILY = "1,2"; TARGETED_DEVICE_FAMILY = "1,2";
TVOS_DEPLOYMENT_TARGET = 9.0;
VALIDATE_PRODUCT = YES; VALIDATE_PRODUCT = YES;
VERSIONING_SYSTEM = "apple-generic"; VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = ""; VERSION_INFO_PREFIX = "";

View File

@ -34,7 +34,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
public weak var client: SocketEngineClient? public weak var client: SocketEngineClient?
private typealias Probe = (msg: String, type: SocketEnginePacketType, data: [NSData]?) private typealias Probe = (msg: String, type: SocketEnginePacketType, data: [NSData])
private typealias ProbeWaitQueue = [Probe] private typealias ProbeWaitQueue = [Probe]
private let allowedCharacterSet = NSCharacterSet(charactersInString: "!*'();:@&=+$,/?%#[]\" {}").invertedSet private let allowedCharacterSet = NSCharacterSet(charactersInString: "!*'();:@&=+$,/?%#[]\" {}").invertedSet
@ -124,11 +124,11 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
private func checkIfMessageIsBase64Binary(var message: String) { private func checkIfMessageIsBase64Binary(var message: String) {
if message.hasPrefix("b4") { if message.hasPrefix("b4") {
// binary in base64 string // binary in base64 string
message.removeRange(Range<String.Index>(start: message.startIndex, message.removeRange(Range(start: message.startIndex,
end: message.startIndex.advancedBy(2))) end: message.startIndex.advancedBy(2)))
if let data = NSData(base64EncodedString: message, if let data = NSData(base64EncodedString: message,
options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters) { options: .IgnoreUnknownCharacters) {
client?.parseBinaryData(data) client?.parseBinaryData(data)
} }
} }
@ -419,7 +419,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
} }
/// Send an engine message (4) /// Send an engine message (4)
public func send(msg: String, withData datas: [NSData]?) { public func send(msg: String, withData datas: [NSData]) {
if probing { if probing {
probeWait.append((msg, .Message, datas)) probeWait.append((msg, .Message, datas))
} else { } else {
@ -436,7 +436,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
} }
++pongsMissed ++pongsMissed
write("", withType: .Ping, withData: nil) write("", withType: .Ping, withData: [])
} }
// Starts the ping timer // Starts the ping timer
@ -465,16 +465,16 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
/** /**
Write a message, independent of transport. Write a message, independent of transport.
*/ */
public func write(msg: String, withType type: SocketEnginePacketType, withData data: [NSData]?) { public func write(msg: String, withType type: SocketEnginePacketType, withData data: [NSData]) {
dispatch_async(emitQueue) { dispatch_async(emitQueue) {
if self.connected { if self.connected {
if self.websocket { if self.websocket {
DefaultSocketLogger.Logger.log("Writing ws: %@ has data: %@", type: self.logType, args: msg, DefaultSocketLogger.Logger.log("Writing ws: %@ has data: %@", type: self.logType, args: msg,
data == nil ? false : true) data.count == 0 ? false : true)
self.sendWebSocketMessage(msg, withType: type, datas: data) self.sendWebSocketMessage(msg, withType: type, datas: data)
} else { } else {
DefaultSocketLogger.Logger.log("Writing poll: %@ has data: %@", type: self.logType, args: msg, DefaultSocketLogger.Logger.log("Writing poll: %@ has data: %@", type: self.logType, args: msg,
data == nil ? false : true) data.count == 0 ? false : true)
self.sendPollMessage(msg, withType: type, datas: data) self.sendPollMessage(msg, withType: type, datas: data)
} }
} }

View File

@ -37,6 +37,6 @@ import Foundation
func close() func close()
func open(opts: [String: AnyObject]?) func open(opts: [String: AnyObject]?)
func send(msg: String, withData datas: [NSData]?) func send(msg: String, withData datas: [NSData])
func write(msg: String, withType type: SocketEnginePacketType, withData data: [NSData]?) func write(msg: String, withType type: SocketEnginePacketType, withData data: [NSData])
} }

View File

@ -30,6 +30,6 @@ struct SocketEventHandler {
let callback: NormalCallback let callback: NormalCallback
func executeCallback(items: [AnyObject], withAck ack: Int, withSocket socket: SocketIOClient) { func executeCallback(items: [AnyObject], withAck ack: Int, withSocket socket: SocketIOClient) {
self.callback(items, SocketAckEmitter(socket: socket, ackNum: ack)) callback(items, SocketAckEmitter(socket: socket, ackNum: ack))
} }
} }

View File

@ -44,7 +44,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
private var anyHandler: ((SocketAnyEvent) -> Void)? private var anyHandler: ((SocketAnyEvent) -> Void)?
private var currentReconnectAttempt = 0 private var currentReconnectAttempt = 0
private var handlers = ContiguousArray<SocketEventHandler>() private var handlers = [SocketEventHandler]()
private var connectParams: [String: AnyObject]? private var connectParams: [String: AnyObject]?
private var reconnectTimer: NSTimer? private var reconnectTimer: NSTimer?
private var ackHandlers = SocketAckManager() private var ackHandlers = SocketAckManager()
@ -288,11 +288,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
DefaultSocketLogger.Logger.log("Emitting: %@", type: logType, args: str) DefaultSocketLogger.Logger.log("Emitting: %@", type: logType, args: str)
if packet.type == .BinaryEvent {
engine?.send(str, withData: packet.binary) engine?.send(str, withData: packet.binary)
} else {
engine?.send(str, withData: nil)
}
} }
// If the server wants to know that the client received data // If the server wants to know that the client received data
@ -304,12 +300,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
DefaultSocketLogger.Logger.log("Emitting Ack: %@", type: self.logType, args: str) DefaultSocketLogger.Logger.log("Emitting Ack: %@", type: self.logType, args: str)
if packet.type == SocketPacket.PacketType.BinaryAck {
self.engine?.send(str, withData: packet.binary) self.engine?.send(str, withData: packet.binary)
} else {
self.engine?.send(str, withData: nil)
}
} }
} }
} }
@ -362,7 +353,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
*/ */
public func leaveNamespace() { public func leaveNamespace() {
if nsp != "/" { if nsp != "/" {
engine?.send("1\(nsp)", withData: nil) engine?.send("1\(nsp)", withData: [])
nsp = "/" nsp = "/"
} }
} }
@ -374,7 +365,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
DefaultSocketLogger.Logger.log("Joining namespace", type: logType) DefaultSocketLogger.Logger.log("Joining namespace", type: logType)
if nsp != "/" { if nsp != "/" {
engine?.send("0\(nsp)", withData: nil) engine?.send("0\(nsp)", withData: [])
} }
} }
@ -392,7 +383,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
public func off(event: String) { public func off(event: String) {
DefaultSocketLogger.Logger.log("Removing handler for event: %@", type: logType, args: event) DefaultSocketLogger.Logger.log("Removing handler for event: %@", type: logType, args: event)
handlers = ContiguousArray(handlers.filter { $0.event != event }) handlers = handlers.filter { $0.event != event }
} }
/** /**
@ -415,7 +406,7 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
let handler = SocketEventHandler(event: event, id: id) {[weak self] data, ack in let handler = SocketEventHandler(event: event, id: id) {[weak self] data, ack in
guard let this = self else {return} guard let this = self else {return}
this.handlers = ContiguousArray(this.handlers.filter {$0.id != id}) this.handlers = this.handlers.filter {$0.id != id}
callback(data, ack) callback(data, ack)
} }

View File

@ -45,7 +45,7 @@ struct SocketPacket {
if data.count == 0 { if data.count == 0 {
return nil return nil
} else { } else {
if type == PacketType.Event || type == PacketType.BinaryEvent { if type == .Event || type == .BinaryEvent {
arr.removeAtIndex(0) arr.removeAtIndex(0)
return arr return arr
} else { } else {