refactor
This commit is contained in:
parent
54b2da8395
commit
72d5c07de1
@ -30,7 +30,8 @@ extension String {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private typealias PollWaitQueue = [() -> Void]
|
private typealias Probe = (msg:String, type:PacketType, data:[NSData]?)
|
||||||
|
private typealias ProbeWaitQueue = [Probe]
|
||||||
|
|
||||||
public enum PacketType: String {
|
public enum PacketType: String {
|
||||||
case OPEN = "0"
|
case OPEN = "0"
|
||||||
@ -59,7 +60,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
|
|||||||
private var postWait = [String]()
|
private var postWait = [String]()
|
||||||
private var _polling = true
|
private var _polling = true
|
||||||
private var probing = false
|
private var probing = false
|
||||||
private var probeWait = PollWaitQueue()
|
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 _websocket = false
|
||||||
@ -204,7 +205,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
for waiter in self!.probeWait {
|
for waiter in self!.probeWait {
|
||||||
waiter()
|
self?.write(waiter.msg, withType: waiter.type, withData: waiter.data)
|
||||||
}
|
}
|
||||||
|
|
||||||
self?.probeWait.removeAll(keepCapacity: false)
|
self?.probeWait.removeAll(keepCapacity: false)
|
||||||
@ -481,23 +482,10 @@ public class SocketEngine: NSObject, WebSocketDelegate {
|
|||||||
Send a message with type 4
|
Send a message with type 4
|
||||||
*/
|
*/
|
||||||
public func send(msg:String, datas:[NSData]? = nil) {
|
public func send(msg:String, datas:[NSData]? = nil) {
|
||||||
let _send = {[weak self] (msg:String, datas:[NSData]?) -> () -> Void in
|
if self.probing {
|
||||||
return {
|
self.probeWait.append((msg, PacketType.MESSAGE, datas))
|
||||||
self?.write(msg, withType: PacketType.MESSAGE, withData: datas)
|
} else {
|
||||||
return
|
self.write(msg, withType: PacketType.MESSAGE, withData: datas)
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
dispatch_async(self.emitQueue) {[weak self] in
|
|
||||||
if self == nil {
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
if self!.probing {
|
|
||||||
self?.probeWait.append(_send(msg, datas))
|
|
||||||
} else {
|
|
||||||
_send(msg, datas)()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user