Simplified SocketEngine.swift
This commit is contained in:
parent
d2ae3705ff
commit
4f2040fbfd
@ -350,9 +350,11 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
// We had packets waiting for send when we upgraded
|
||||
// Send them raw
|
||||
private func flushWaitingForPostToWebSocket() {
|
||||
for msg in postWait {
|
||||
ws?.writeString(msg)
|
||||
}
|
||||
if let ws = ws {
|
||||
for msg in postWait {
|
||||
ws.writeString(msg)
|
||||
}
|
||||
}
|
||||
|
||||
postWait.removeAll(keepCapacity: true)
|
||||
}
|
||||
@ -495,7 +497,7 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
var n = 0
|
||||
var msg = ""
|
||||
|
||||
func testLength(length:String, inout n:Int) -> Bool {
|
||||
func testLength(length: String, inout n: Int) -> Bool {
|
||||
if let num = Int(length) {
|
||||
n = num
|
||||
return false
|
||||
@ -525,8 +527,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
|
||||
if msg.characters.count != 0 {
|
||||
// Be sure to capture the value of the msg
|
||||
dispatch_async(handleQueue) {[weak self, msg] in
|
||||
self?.parseEngineMessage(msg, fromPolling: true)
|
||||
dispatch_async(handleQueue) {
|
||||
self.parseEngineMessage(msg, fromPolling: true)
|
||||
}
|
||||
}
|
||||
|
||||
@ -549,8 +551,8 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
|
||||
let type = PacketType(str: (message["^(\\d)"].groups()?[1]) ?? "") ?? {
|
||||
self.checkIfMessageIsBase64Binary(message)
|
||||
return PacketType.Noop
|
||||
}()
|
||||
return .Noop
|
||||
}()
|
||||
|
||||
switch type {
|
||||
case PacketType.Message:
|
||||
@ -608,13 +610,11 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
|
||||
postWait.append(strMsg)
|
||||
|
||||
if let datas = datas {
|
||||
for data in datas {
|
||||
let (_, b64Data) = createBinaryDataForSend(data)
|
||||
for data in datas ?? [] {
|
||||
let (_, b64Data) = createBinaryDataForSend(data)
|
||||
|
||||
postWait.append(b64Data!)
|
||||
}
|
||||
}
|
||||
postWait.append(b64Data!)
|
||||
}
|
||||
|
||||
if !waitingForPost {
|
||||
flushWaitingForPost()
|
||||
@ -629,30 +629,26 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
|
||||
ws?.writeString("\(type.rawValue)\(str)")
|
||||
|
||||
if let datas = datas {
|
||||
for data in datas {
|
||||
let (data, _) = createBinaryDataForSend(data)
|
||||
if data != nil {
|
||||
ws?.writeData(data!)
|
||||
}
|
||||
}
|
||||
}
|
||||
for data in datas ?? [] {
|
||||
let (data, _) = createBinaryDataForSend(data)
|
||||
if data != nil {
|
||||
ws?.writeData(data!)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Starts the ping timer
|
||||
private func startPingTimer() {
|
||||
guard pingInterval != nil else {
|
||||
return
|
||||
}
|
||||
if let pingInterval = pingInterval {
|
||||
pingTimer?.invalidate()
|
||||
pingTimer = nil
|
||||
|
||||
pingTimer?.invalidate()
|
||||
dispatch_async(dispatch_get_main_queue()) {[weak self] in
|
||||
if let this = self {
|
||||
this.pingTimer = NSTimer.scheduledTimerWithTimeInterval(this.pingInterval!, target: this,
|
||||
selector: Selector("sendPing"), userInfo: nil, repeats: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
dispatch_async(dispatch_get_main_queue()) {
|
||||
self.pingTimer = NSTimer.scheduledTimerWithTimeInterval(pingInterval, target: self,
|
||||
selector: Selector("sendPing"), userInfo: nil, repeats: true)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func stopPolling() {
|
||||
session.invalidateAndCancel()
|
||||
@ -672,16 +668,16 @@ public final class SocketEngine: NSObject, WebSocketDelegate {
|
||||
Write a message, independent of transport.
|
||||
*/
|
||||
public func write(msg: String, withType type: PacketType, withData data: [NSData]?) {
|
||||
dispatch_async(emitQueue) {[weak self] in
|
||||
if let this = self where this.connected {
|
||||
if this.websocket {
|
||||
Logger.log("Writing ws: %@ has data: %@", type: this.logType, args: msg,
|
||||
dispatch_async(emitQueue) {
|
||||
if self.connected {
|
||||
if self.websocket {
|
||||
Logger.log("Writing ws: %@ has data: %@", type: self.logType, args: msg,
|
||||
data == nil ? false : true)
|
||||
this.sendWebSocketMessage(msg, withType: type, datas: data)
|
||||
self.sendWebSocketMessage(msg, withType: type, datas: data)
|
||||
} else {
|
||||
Logger.log("Writing poll: %@ has data: %@", type: this.logType, args: msg,
|
||||
Logger.log("Writing poll: %@ has data: %@", type: self.logType, args: msg,
|
||||
data == nil ? false : true)
|
||||
this.sendPollMessage(msg, withType: type, datas: data)
|
||||
self.sendPollMessage(msg, withType: type, datas: data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user