refactors
This commit is contained in:
parent
298817ce5c
commit
931382deff
@ -171,9 +171,9 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
|
|||||||
connected = false
|
connected = false
|
||||||
|
|
||||||
if websocket {
|
if websocket {
|
||||||
sendWebSocketMessage("", withType: .Close)
|
sendWebSocketMessage("", withType: .Close, withData: [])
|
||||||
} else {
|
} else {
|
||||||
sendPollMessage("", withType: .Close)
|
sendPollMessage("", withType: .Close, withData: [])
|
||||||
}
|
}
|
||||||
|
|
||||||
ws?.disconnect()
|
ws?.disconnect()
|
||||||
@ -270,7 +270,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
|
|||||||
"we'll probably disconnect soon. You should report this.", type: logType)
|
"we'll probably disconnect soon. You should report this.", type: logType)
|
||||||
}
|
}
|
||||||
|
|
||||||
sendWebSocketMessage("", withType: .Upgrade, datas: nil)
|
sendWebSocketMessage("", withType: .Upgrade, withData: [])
|
||||||
websocket = true
|
websocket = true
|
||||||
polling = false
|
polling = false
|
||||||
fastUpgrade = false
|
fastUpgrade = false
|
||||||
@ -455,7 +455,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
|
|||||||
|
|
||||||
private func probeWebSocket() {
|
private func probeWebSocket() {
|
||||||
if websocketConnected {
|
if websocketConnected {
|
||||||
sendWebSocketMessage("probe", withType: .Ping)
|
sendWebSocketMessage("probe", withType: .Ping, withData: [])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -516,7 +516,7 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
|
|||||||
DefaultSocketLogger.Logger.log("Upgrading transport to WebSockets", type: logType)
|
DefaultSocketLogger.Logger.log("Upgrading transport to WebSockets", type: logType)
|
||||||
|
|
||||||
fastUpgrade = true
|
fastUpgrade = true
|
||||||
sendPollMessage("", withType: .Noop)
|
sendPollMessage("", withType: .Noop, withData: [])
|
||||||
// After this point, we should not send anymore polling messages
|
// After this point, we should not send anymore polling messages
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -530,11 +530,11 @@ public final class SocketEngine: NSObject, SocketEngineSpec, WebSocketDelegate {
|
|||||||
if self.websocket {
|
if self.websocket {
|
||||||
DefaultSocketLogger.Logger.log("Writing ws: %@ has data: %@",
|
DefaultSocketLogger.Logger.log("Writing ws: %@ has data: %@",
|
||||||
type: self.logType, args: msg, data.count != 0)
|
type: self.logType, args: msg, data.count != 0)
|
||||||
self.sendWebSocketMessage(msg, withType: type, datas: data)
|
self.sendWebSocketMessage(msg, withType: type, withData: data)
|
||||||
} else {
|
} else {
|
||||||
DefaultSocketLogger.Logger.log("Writing poll: %@ has data: %@",
|
DefaultSocketLogger.Logger.log("Writing poll: %@ has data: %@",
|
||||||
type: self.logType, args: msg, data.count != 0)
|
type: self.logType, args: msg, data.count != 0)
|
||||||
self.sendPollMessage(msg, withType: type, datas: data)
|
self.sendPollMessage(msg, withType: type, withData: data)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -710,14 +710,14 @@ extension SocketEngine {
|
|||||||
/// Send polling message.
|
/// Send polling message.
|
||||||
/// Only call on emitQueue
|
/// Only call on emitQueue
|
||||||
private func sendPollMessage(message: String, withType type: SocketEnginePacketType,
|
private func sendPollMessage(message: String, withType type: SocketEnginePacketType,
|
||||||
datas:[NSData]? = nil) {
|
withData datas: [NSData]) {
|
||||||
DefaultSocketLogger.Logger.log("Sending poll: %@ as type: %@", type: logType, args: message, type.rawValue)
|
DefaultSocketLogger.Logger.log("Sending poll: %@ as type: %@", type: logType, args: message, type.rawValue)
|
||||||
let fixedMessage = doubleEncodeUTF8(message)
|
let fixedMessage = doubleEncodeUTF8(message)
|
||||||
let strMsg = "\(type.rawValue)\(fixedMessage)"
|
let strMsg = "\(type.rawValue)\(fixedMessage)"
|
||||||
|
|
||||||
postWait.append(strMsg)
|
postWait.append(strMsg)
|
||||||
|
|
||||||
for data in datas ?? [] {
|
for data in datas {
|
||||||
if case let .Right(bin) = createBinaryDataForSend(data) {
|
if case let .Right(bin) = createBinaryDataForSend(data) {
|
||||||
postWait.append(bin)
|
postWait.append(bin)
|
||||||
}
|
}
|
||||||
@ -739,12 +739,12 @@ extension SocketEngine {
|
|||||||
/// Send message on WebSockets
|
/// Send message on WebSockets
|
||||||
/// Only call on emitQueue
|
/// Only call on emitQueue
|
||||||
private func sendWebSocketMessage(str: String, withType type: SocketEnginePacketType,
|
private func sendWebSocketMessage(str: String, withType type: SocketEnginePacketType,
|
||||||
datas:[NSData]? = nil) {
|
withData datas: [NSData]) {
|
||||||
DefaultSocketLogger.Logger.log("Sending ws: %@ as type: %@", type: logType, args: str, type.rawValue)
|
DefaultSocketLogger.Logger.log("Sending ws: %@ as type: %@", type: logType, args: str, type.rawValue)
|
||||||
|
|
||||||
ws?.writeString("\(type.rawValue)\(str)")
|
ws?.writeString("\(type.rawValue)\(str)")
|
||||||
|
|
||||||
for data in datas ?? [] {
|
for data in datas {
|
||||||
if case let .Left(bin) = createBinaryDataForSend(data) {
|
if case let .Left(bin) = createBinaryDataForSend(data) {
|
||||||
ws?.writeData(bin)
|
ws?.writeData(bin)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -112,13 +112,12 @@ public final class SocketIOClient: NSObject, SocketEngineClient {
|
|||||||
engine?.close()
|
engine?.close()
|
||||||
}
|
}
|
||||||
|
|
||||||
private func addEngine() -> SocketEngine {
|
private func addEngine() -> SocketEngineSpec {
|
||||||
DefaultSocketLogger.Logger.log("Adding engine", type: logType)
|
DefaultSocketLogger.Logger.log("Adding engine", type: logType)
|
||||||
|
|
||||||
let newEngine = SocketEngine(client: self, url: socketURL, options: options ?? [])
|
engine = SocketEngine(client: self, url: socketURL, options: options)
|
||||||
|
|
||||||
engine = newEngine
|
return engine!
|
||||||
return newEngine
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private func clearReconnectTimer() {
|
private func clearReconnectTimer() {
|
||||||
|
|||||||
@ -37,7 +37,7 @@ public protocol SocketLogger: class {
|
|||||||
|
|
||||||
public extension SocketLogger {
|
public extension SocketLogger {
|
||||||
func log(message: String, type: String, args: AnyObject...) {
|
func log(message: String, type: String, args: AnyObject...) {
|
||||||
abstractLog("Log", message: message, type: type, args: args)
|
abstractLog("LOG", message: message, type: type, args: args)
|
||||||
}
|
}
|
||||||
|
|
||||||
func error(message: String, type: String, args: AnyObject...) {
|
func error(message: String, type: String, args: AnyObject...) {
|
||||||
@ -47,7 +47,7 @@ public extension SocketLogger {
|
|||||||
private func abstractLog(logType: String, message: String, type: String, args: [AnyObject]) {
|
private func abstractLog(logType: String, message: String, type: String, args: [AnyObject]) {
|
||||||
guard log else { return }
|
guard log else { return }
|
||||||
|
|
||||||
let newArgs = args.map {arg -> CVarArgType in String(arg)}
|
let newArgs = args.map({arg -> CVarArgType in String(arg)})
|
||||||
let replaced = String(format: message, arguments: newArgs)
|
let replaced = String(format: message, arguments: newArgs)
|
||||||
|
|
||||||
NSLog("%@ %@: %@", logType, type, replaced)
|
NSLog("%@ %@: %@", logType, type, replaced)
|
||||||
|
|||||||
@ -55,7 +55,7 @@ struct SocketPacket {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var event: String {
|
var event: String {
|
||||||
return data[0] as? String ?? String(data[0])
|
return String(data[0])
|
||||||
}
|
}
|
||||||
|
|
||||||
var packetString: String {
|
var packetString: String {
|
||||||
@ -100,9 +100,9 @@ struct SocketPacket {
|
|||||||
do {
|
do {
|
||||||
let jsonSend = try NSJSONSerialization.dataWithJSONObject(arg,
|
let jsonSend = try NSJSONSerialization.dataWithJSONObject(arg,
|
||||||
options: NSJSONWritingOptions(rawValue: 0))
|
options: NSJSONWritingOptions(rawValue: 0))
|
||||||
let jsonString = NSString(data: jsonSend, encoding: NSUTF8StringEncoding)
|
let jsonString = String(data: jsonSend, encoding: NSUTF8StringEncoding)
|
||||||
|
|
||||||
restOfMessage += jsonString! as String + ","
|
restOfMessage += jsonString! + ","
|
||||||
} catch {
|
} catch {
|
||||||
DefaultSocketLogger.Logger.error("Error creating JSON object in SocketPacket.completeMessage",
|
DefaultSocketLogger.Logger.error("Error creating JSON object in SocketPacket.completeMessage",
|
||||||
type: SocketPacket.logType)
|
type: SocketPacket.logType)
|
||||||
@ -124,30 +124,30 @@ struct SocketPacket {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private func createAck() -> String {
|
private func createAck() -> String {
|
||||||
let msg: String
|
let message: String
|
||||||
|
|
||||||
if type == PacketType.Ack {
|
if type == .Ack {
|
||||||
if nsp == "/" {
|
if nsp == "/" {
|
||||||
msg = "3\(id)["
|
message = "3\(id)["
|
||||||
} else {
|
} else {
|
||||||
msg = "3\(nsp),\(id)["
|
message = "3\(nsp),\(id)["
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if nsp == "/" {
|
if nsp == "/" {
|
||||||
msg = "6\(binary.count)-\(id)["
|
message = "6\(binary.count)-\(id)["
|
||||||
} else {
|
} else {
|
||||||
msg = "6\(binary.count)-\(nsp),\(id)["
|
message = "6\(binary.count)-\(nsp),\(id)["
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return completeMessage(msg, ack: true)
|
return completeMessage(message, ack: true)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private func createMessageForEvent() -> String {
|
private func createMessageForEvent() -> String {
|
||||||
let message: String
|
let message: String
|
||||||
|
|
||||||
if type == PacketType.Event {
|
if type == .Event {
|
||||||
if nsp == "/" {
|
if nsp == "/" {
|
||||||
if id == -1 {
|
if id == -1 {
|
||||||
message = "2["
|
message = "2["
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user