@@ -30,7 +30,8 @@ extension String {
3030 }
3131}
3232
33- private typealias PollWaitQueue = [ ( ) -> Void ]
33+ private typealias Probe = ( msg: String , type: PacketType , data: [ NSData ] ? )
34+ private typealias ProbeWaitQueue = [ Probe ]
3435
3536public enum PacketType : String {
3637 case OPEN = " 0 "
@@ -59,7 +60,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
5960 private var postWait = [ String] ( )
6061 private var _polling = true
6162 private var probing = false
62- private var probeWait = PollWaitQueue ( )
63+ private var probeWait = ProbeWaitQueue ( )
6364 private var waitingForPoll = false
6465 private var waitingForPost = false
6566 private var _websocket = false
@@ -204,7 +205,7 @@ public class SocketEngine: NSObject, WebSocketDelegate {
204205 }
205206
206207 for waiter in self !. probeWait {
207- waiter ( )
208+ self ? . write ( waiter . msg , withType : waiter . type , withData : waiter . data )
208209 }
209210
210211 self ? . probeWait. removeAll ( keepCapacity: false )
@@ -481,23 +482,10 @@ public class SocketEngine: NSObject, WebSocketDelegate {
481482 Send a message with type 4
482483 */
483484 public func send( msg: String , datas: [ NSData ] ? = nil ) {
484- let _send = { [ weak self] ( msg: String , datas: [ NSData ] ? ) -> ( ) -> Void in
485- return {
486- self ? . write ( msg, withType: PacketType . MESSAGE, withData: datas)
487- return
488- }
489- }
490-
491- dispatch_async ( self . emitQueue) { [ weak self] in
492- if self == nil {
493- return
494- }
495-
496- if self !. probing {
497- self ? . probeWait. append ( _send ( msg, datas) )
498- } else {
499- _send ( msg, datas) ( )
500- }
485+ if self . probing {
486+ self . probeWait. append ( ( msg, PacketType . MESSAGE, datas) )
487+ } else {
488+ self . write ( msg, withType: PacketType . MESSAGE, withData: datas)
501489 }
502490 }
503491
0 commit comments