@@ -33,6 +33,8 @@ import Foundation
33
33
open class SocketIOClient : NSObject , SocketIOClientSpec , SocketEngineClient , SocketParsable {
34
34
// MARK: Properties
35
35
36
+ private static let logType = " SocketIOClient "
37
+
36
38
/// The engine for this client.
37
39
public private( set) var engine : SocketEngineSpec ?
38
40
@@ -87,8 +89,6 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
87
89
private( set) var currentAck = - 1
88
90
private( set) var reconnectAttempts = - 1
89
91
90
- private let logType = " SocketIOClient "
91
-
92
92
private var anyHandler : ( ( SocketAnyEvent ) -> ( ) ) ?
93
93
private var currentReconnectAttempt = 0
94
94
private var handlers = [ SocketEventHandler] ( )
@@ -146,16 +146,19 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
146
146
}
147
147
148
148
deinit {
149
- DefaultSocketLogger . Logger. log ( " Client is being released " , type: logType)
149
+ DefaultSocketLogger . Logger. log ( " Client is being released " , type: SocketIOClient . logType)
150
150
engine? . disconnect ( reason: " Client Deinit " )
151
151
}
152
152
153
153
// MARK: Methods
154
154
155
155
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
+ }
157
161
158
- engine? . client = nil
159
162
engine = SocketEngine ( client: self , url: socketURL, config: config)
160
163
}
161
164
@@ -173,7 +176,8 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
173
176
assert ( timeoutAfter >= 0 , " Invalid timeout: \( timeoutAfter) " )
174
177
175
178
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)
177
181
return
178
182
}
179
183
@@ -204,7 +208,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
204
208
}
205
209
206
210
func didConnect( toNamespace namespace: String ) {
207
- DefaultSocketLogger . Logger. log ( " Socket connected " , type: logType)
211
+ DefaultSocketLogger . Logger. log ( " Socket connected " , type: SocketIOClient . logType)
208
212
209
213
status = . connected
210
214
@@ -214,7 +218,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
214
218
func didDisconnect( reason: String ) {
215
219
guard status != . disconnected else { return }
216
220
217
- DefaultSocketLogger . Logger. log ( " Disconnected: %@ " , type: logType, args: reason)
221
+ DefaultSocketLogger . Logger. log ( " Disconnected: %@ " , type: SocketIOClient . logType, args: reason)
218
222
219
223
reconnecting = false
220
224
status = . disconnected
@@ -226,7 +230,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
226
230
227
231
/// Disconnects the socket.
228
232
open func disconnect( ) {
229
- DefaultSocketLogger . Logger. log ( " Closing socket " , type: logType)
233
+ DefaultSocketLogger . Logger. log ( " Closing socket " , type: SocketIOClient . logType)
230
234
231
235
didDisconnect ( reason: " Disconnect " )
232
236
}
@@ -243,7 +247,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
243
247
try emit ( event, with: items. map ( { try $0. socketRepresentation ( ) } ) )
244
248
} catch let err {
245
249
DefaultSocketLogger . Logger. error ( " Error creating socketRepresentation for emit: \( event) , \( items) " ,
246
- type: logType)
250
+ type: SocketIOClient . logType)
247
251
248
252
handleClientEvent ( . error, data: [ event, items, err] )
249
253
}
@@ -286,7 +290,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
286
290
return emitWithAck ( event, with: try items. map ( { try $0. socketRepresentation ( ) } ) )
287
291
} catch let err {
288
292
DefaultSocketLogger . Logger. error ( " Error creating socketRepresentation for emit: \( event) , \( items) " ,
289
- type: logType)
293
+ type: SocketIOClient . logType)
290
294
291
295
handleClientEvent ( . error, data: [ event, items, err] )
292
296
@@ -323,7 +327,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
323
327
let packet = SocketPacket . packetFromEmit ( data, id: ack ?? - 1 , nsp: nsp, ack: false )
324
328
let str = packet. packetString
325
329
326
- DefaultSocketLogger . Logger. log ( " Emitting: %@ " , type: logType, args: str)
330
+ DefaultSocketLogger . Logger. log ( " Emitting: %@ " , type: SocketIOClient . logType, args: str)
327
331
328
332
engine? . send ( str, withData: packet. binary)
329
333
}
@@ -335,7 +339,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
335
339
let packet = SocketPacket . packetFromEmit ( items, id: ack, nsp: nsp, ack: true )
336
340
let str = packet. packetString
337
341
338
- DefaultSocketLogger . Logger. log ( " Emitting Ack: %@ " , type: logType, args: str)
342
+ DefaultSocketLogger . Logger. log ( " Emitting Ack: %@ " , type: SocketIOClient . logType, args: str)
339
343
340
344
engine? . send ( str, withData: packet. binary)
341
345
}
@@ -374,7 +378,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
374
378
}
375
379
376
380
private func _engineDidError( reason: String ) {
377
- DefaultSocketLogger . Logger. error ( " %@ " , type: logType, args: reason)
381
+ DefaultSocketLogger . Logger. error ( " %@ " , type: SocketIOClient . logType, args: reason)
378
382
379
383
handleClientEvent ( . error, data: [ reason] )
380
384
}
@@ -383,14 +387,14 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
383
387
///
384
388
/// - parameter reason: The reason the engine opened.
385
389
open func engineDidOpen( reason: String ) {
386
- DefaultSocketLogger . Logger. log ( reason, type: " SocketEngineClient " )
390
+ DefaultSocketLogger . Logger. log ( reason, type: SocketIOClient . logType )
387
391
}
388
392
389
393
// Called when the socket gets an ack for something it sent
390
394
func handleAck( _ ack: Int , data: [ Any ] ) {
391
395
guard status == . connected else { return }
392
396
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)
394
398
395
399
ackHandlers. executeAck ( ack, with: data, onQueue: handleQueue)
396
400
}
@@ -404,7 +408,8 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
404
408
open func handleEvent( _ event: String , data: [ Any ] , isInternalMessage: Bool , withAck ack: Int = - 1 ) {
405
409
guard status == . connected || isInternalMessage else { return }
406
410
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)
408
413
409
414
anyHandler ? ( SocketAnyEvent ( event: event, items: data) )
410
415
@@ -434,7 +439,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
434
439
nsp = namespace
435
440
436
441
if nsp != " / " {
437
- DefaultSocketLogger . Logger. log ( " Joining namespace " , type: logType)
442
+ DefaultSocketLogger . Logger. log ( " Joining namespace " , type: SocketIOClient . logType)
438
443
engine? . send ( " 0 \( nsp) " , withData: [ ] )
439
444
}
440
445
}
@@ -454,7 +459,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
454
459
///
455
460
/// - parameter event: The event to remove handlers for.
456
461
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)
458
463
459
464
handlers = handlers. filter ( { $0. event != event } )
460
465
}
@@ -465,7 +470,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
465
470
///
466
471
/// - parameter id: The UUID of the handler you wish to remove.
467
472
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)
469
474
470
475
handlers = handlers. filter ( { $0. id != id } )
471
476
}
@@ -477,7 +482,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
477
482
/// - returns: A unique id for the handler that can be used to remove it.
478
483
@discardableResult
479
484
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)
481
486
482
487
let handler = SocketEventHandler ( event: event, id: UUID ( ) , callback: callback)
483
488
handlers. append ( handler)
@@ -500,7 +505,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
500
505
/// - returns: A unique id for the handler that can be used to remove it.
501
506
@discardableResult
502
507
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)
504
509
505
510
let handler = SocketEventHandler ( event: event. rawValue, id: UUID ( ) , callback: callback)
506
511
handlers. append ( handler)
@@ -525,7 +530,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
525
530
/// - returns: A unique id for the handler that can be used to remove it.
526
531
@discardableResult
527
532
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)
529
534
530
535
let id = UUID ( )
531
536
@@ -551,7 +556,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
551
556
///
552
557
/// - parameter msg: The message that needs parsing.
553
558
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)
555
560
556
561
handleQueue. async { self . parseSocketMessage ( msg) }
557
562
}
@@ -581,7 +586,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
581
586
private func tryReconnect( reason: String ) {
582
587
guard reconnecting else { return }
583
588
584
- DefaultSocketLogger . Logger. log ( " Starting reconnect " , type: logType)
589
+ DefaultSocketLogger . Logger. log ( " Starting reconnect " , type: SocketIOClient . logType)
585
590
handleClientEvent ( . reconnect, data: [ reason] )
586
591
587
592
_tryReconnect ( )
@@ -594,7 +599,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
594
599
return didDisconnect ( reason: " Reconnect Failed " )
595
600
}
596
601
597
- DefaultSocketLogger . Logger. log ( " Trying to reconnect " , type: logType)
602
+ DefaultSocketLogger . Logger. log ( " Trying to reconnect " , type: SocketIOClient . logType)
598
603
handleClientEvent ( . reconnectAttempt, data: [ ( reconnectAttempts - currentReconnectAttempt) ] )
599
604
600
605
currentReconnectAttempt += 1
0 commit comments