@@ -33,6 +33,8 @@ import Foundation
3333open class SocketIOClient : NSObject , SocketIOClientSpec , SocketEngineClient , SocketParsable {
3434 // MARK: Properties
3535
36+ private static let logType = " SocketIOClient "
37+
3638 /// The engine for this client.
3739 public private( set) var engine : SocketEngineSpec ?
3840
@@ -87,8 +89,6 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
8789 private( set) var currentAck = - 1
8890 private( set) var reconnectAttempts = - 1
8991
90- private let logType = " SocketIOClient "
91-
9292 private var anyHandler : ( ( SocketAnyEvent ) -> ( ) ) ?
9393 private var currentReconnectAttempt = 0
9494 private var handlers = [ SocketEventHandler] ( )
@@ -146,16 +146,19 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
146146 }
147147
148148 deinit {
149- DefaultSocketLogger . Logger. log ( " Client is being released " , type: logType)
149+ DefaultSocketLogger . Logger. log ( " Client is being released " , type: SocketIOClient . logType)
150150 engine? . disconnect ( reason: " Client Deinit " )
151151 }
152152
153153 // MARK: Methods
154154
155155 private func addEngine( ) {
156- DefaultSocketLogger . Logger. log ( " Adding engine " , type: logType, args: " " )
156+ DefaultSocketLogger . Logger. log ( " Adding engine " , type: SocketIOClient . logType, args: " " )
157+
158+ engine? . engineQueue. sync {
159+ self . engine? . client = nil
160+ }
157161
158- engine? . client = nil
159162 engine = SocketEngine ( client: self , url: socketURL, config: config)
160163 }
161164
@@ -173,7 +176,8 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
173176 assert ( timeoutAfter >= 0 , " Invalid timeout: \( timeoutAfter) " )
174177
175178 guard status != . connected else {
176- DefaultSocketLogger . Logger. log ( " Tried connecting on an already connected socket " , type: logType)
179+ DefaultSocketLogger . Logger. log ( " Tried connecting on an already connected socket " ,
180+ type: SocketIOClient . logType)
177181 return
178182 }
179183
@@ -204,7 +208,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
204208 }
205209
206210 func didConnect( toNamespace namespace: String ) {
207- DefaultSocketLogger . Logger. log ( " Socket connected " , type: logType)
211+ DefaultSocketLogger . Logger. log ( " Socket connected " , type: SocketIOClient . logType)
208212
209213 status = . connected
210214
@@ -214,7 +218,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
214218 func didDisconnect( reason: String ) {
215219 guard status != . disconnected else { return }
216220
217- DefaultSocketLogger . Logger. log ( " Disconnected: %@ " , type: logType, args: reason)
221+ DefaultSocketLogger . Logger. log ( " Disconnected: %@ " , type: SocketIOClient . logType, args: reason)
218222
219223 reconnecting = false
220224 status = . disconnected
@@ -226,7 +230,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
226230
227231 /// Disconnects the socket.
228232 open func disconnect( ) {
229- DefaultSocketLogger . Logger. log ( " Closing socket " , type: logType)
233+ DefaultSocketLogger . Logger. log ( " Closing socket " , type: SocketIOClient . logType)
230234
231235 didDisconnect ( reason: " Disconnect " )
232236 }
@@ -243,7 +247,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
243247 try emit ( event, with: items. map ( { try $0. socketRepresentation ( ) } ) )
244248 } catch let err {
245249 DefaultSocketLogger . Logger. error ( " Error creating socketRepresentation for emit: \( event) , \( items) " ,
246- type: logType)
250+ type: SocketIOClient . logType)
247251
248252 handleClientEvent ( . error, data: [ event, items, err] )
249253 }
@@ -286,7 +290,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
286290 return emitWithAck ( event, with: try items. map ( { try $0. socketRepresentation ( ) } ) )
287291 } catch let err {
288292 DefaultSocketLogger . Logger. error ( " Error creating socketRepresentation for emit: \( event) , \( items) " ,
289- type: logType)
293+ type: SocketIOClient . logType)
290294
291295 handleClientEvent ( . error, data: [ event, items, err] )
292296
@@ -323,7 +327,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
323327 let packet = SocketPacket . packetFromEmit ( data, id: ack ?? - 1 , nsp: nsp, ack: false )
324328 let str = packet. packetString
325329
326- DefaultSocketLogger . Logger. log ( " Emitting: %@ " , type: logType, args: str)
330+ DefaultSocketLogger . Logger. log ( " Emitting: %@ " , type: SocketIOClient . logType, args: str)
327331
328332 engine? . send ( str, withData: packet. binary)
329333 }
@@ -335,7 +339,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
335339 let packet = SocketPacket . packetFromEmit ( items, id: ack, nsp: nsp, ack: true )
336340 let str = packet. packetString
337341
338- DefaultSocketLogger . Logger. log ( " Emitting Ack: %@ " , type: logType, args: str)
342+ DefaultSocketLogger . Logger. log ( " Emitting Ack: %@ " , type: SocketIOClient . logType, args: str)
339343
340344 engine? . send ( str, withData: packet. binary)
341345 }
@@ -374,7 +378,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
374378 }
375379
376380 private func _engineDidError( reason: String ) {
377- DefaultSocketLogger . Logger. error ( " %@ " , type: logType, args: reason)
381+ DefaultSocketLogger . Logger. error ( " %@ " , type: SocketIOClient . logType, args: reason)
378382
379383 handleClientEvent ( . error, data: [ reason] )
380384 }
@@ -383,14 +387,14 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
383387 ///
384388 /// - parameter reason: The reason the engine opened.
385389 open func engineDidOpen( reason: String ) {
386- DefaultSocketLogger . Logger. log ( reason, type: " SocketEngineClient " )
390+ DefaultSocketLogger . Logger. log ( reason, type: SocketIOClient . logType )
387391 }
388392
389393 // Called when the socket gets an ack for something it sent
390394 func handleAck( _ ack: Int , data: [ Any ] ) {
391395 guard status == . connected else { return }
392396
393- DefaultSocketLogger . Logger. log ( " Handling ack: %@ with data: %@ " , type: logType, args: ack, data)
397+ DefaultSocketLogger . Logger. log ( " Handling ack: %@ with data: %@ " , type: SocketIOClient . logType, args: ack, data)
394398
395399 ackHandlers. executeAck ( ack, with: data, onQueue: handleQueue)
396400 }
@@ -404,7 +408,8 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
404408 open func handleEvent( _ event: String , data: [ Any ] , isInternalMessage: Bool , withAck ack: Int = - 1 ) {
405409 guard status == . connected || isInternalMessage else { return }
406410
407- DefaultSocketLogger . Logger. log ( " Handling event: %@ with data: %@ " , type: logType, args: event, data)
411+ DefaultSocketLogger . Logger. log ( " Handling event: %@ with data: %@ " , type: SocketIOClient . logType,
412+ args: event, data)
408413
409414 anyHandler ? ( SocketAnyEvent ( event: event, items: data) )
410415
@@ -434,7 +439,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
434439 nsp = namespace
435440
436441 if nsp != " / " {
437- DefaultSocketLogger . Logger. log ( " Joining namespace " , type: logType)
442+ DefaultSocketLogger . Logger. log ( " Joining namespace " , type: SocketIOClient . logType)
438443 engine? . send ( " 0 \( nsp) " , withData: [ ] )
439444 }
440445 }
@@ -454,7 +459,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
454459 ///
455460 /// - parameter event: The event to remove handlers for.
456461 open func off( _ event: String ) {
457- DefaultSocketLogger . Logger. log ( " Removing handler for event: %@ " , type: logType, args: event)
462+ DefaultSocketLogger . Logger. log ( " Removing handler for event: %@ " , type: SocketIOClient . logType, args: event)
458463
459464 handlers = handlers. filter ( { $0. event != event } )
460465 }
@@ -465,7 +470,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
465470 ///
466471 /// - parameter id: The UUID of the handler you wish to remove.
467472 open func off( id: UUID ) {
468- DefaultSocketLogger . Logger. log ( " Removing handler with id: %@ " , type: logType, args: id)
473+ DefaultSocketLogger . Logger. log ( " Removing handler with id: %@ " , type: SocketIOClient . logType, args: id)
469474
470475 handlers = handlers. filter ( { $0. id != id } )
471476 }
@@ -477,7 +482,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
477482 /// - returns: A unique id for the handler that can be used to remove it.
478483 @discardableResult
479484 open func on( _ event: String , callback: @escaping NormalCallback ) -> UUID {
480- DefaultSocketLogger . Logger. log ( " Adding handler for event: %@ " , type: logType, args: event)
485+ DefaultSocketLogger . Logger. log ( " Adding handler for event: %@ " , type: SocketIOClient . logType, args: event)
481486
482487 let handler = SocketEventHandler ( event: event, id: UUID ( ) , callback: callback)
483488 handlers. append ( handler)
@@ -500,7 +505,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
500505 /// - returns: A unique id for the handler that can be used to remove it.
501506 @discardableResult
502507 open func on( clientEvent event: SocketClientEvent , callback: @escaping NormalCallback ) -> UUID {
503- DefaultSocketLogger . Logger. log ( " Adding handler for event: %@ " , type: logType, args: event)
508+ DefaultSocketLogger . Logger. log ( " Adding handler for event: %@ " , type: SocketIOClient . logType, args: event)
504509
505510 let handler = SocketEventHandler ( event: event. rawValue, id: UUID ( ) , callback: callback)
506511 handlers. append ( handler)
@@ -525,7 +530,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
525530 /// - returns: A unique id for the handler that can be used to remove it.
526531 @discardableResult
527532 open func once( _ event: String , callback: @escaping NormalCallback ) -> UUID {
528- DefaultSocketLogger . Logger. log ( " Adding once handler for event: %@ " , type: logType, args: event)
533+ DefaultSocketLogger . Logger. log ( " Adding once handler for event: %@ " , type: SocketIOClient . logType, args: event)
529534
530535 let id = UUID ( )
531536
@@ -551,7 +556,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
551556 ///
552557 /// - parameter msg: The message that needs parsing.
553558 public func parseEngineMessage( _ msg: String ) {
554- DefaultSocketLogger . Logger. log ( " Should parse message: %@ " , type: " SocketIOClient " , args: msg)
559+ DefaultSocketLogger . Logger. log ( " Should parse message: %@ " , type: SocketIOClient . logType , args: msg)
555560
556561 handleQueue. async { self . parseSocketMessage ( msg) }
557562 }
@@ -581,7 +586,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
581586 private func tryReconnect( reason: String ) {
582587 guard reconnecting else { return }
583588
584- DefaultSocketLogger . Logger. log ( " Starting reconnect " , type: logType)
589+ DefaultSocketLogger . Logger. log ( " Starting reconnect " , type: SocketIOClient . logType)
585590 handleClientEvent ( . reconnect, data: [ reason] )
586591
587592 _tryReconnect ( )
@@ -594,7 +599,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
594599 return didDisconnect ( reason: " Reconnect Failed " )
595600 }
596601
597- DefaultSocketLogger . Logger. log ( " Trying to reconnect " , type: logType)
602+ DefaultSocketLogger . Logger. log ( " Trying to reconnect " , type: SocketIOClient . logType)
598603 handleClientEvent ( . reconnectAttempt, data: [ ( reconnectAttempts - currentReconnectAttempt) ] )
599604
600605 currentReconnectAttempt += 1
0 commit comments