@@ -27,13 +27,12 @@ import Foundation
2727
2828/// The main class for SocketIOClientSwift.
2929///
30+ /// **NOTE**: The client is not thread/queue safe, all interaction with the socket should be done on the `handleQueue`
31+ ///
3032/// Represents a socket.io-client. Most interaction with socket.io will be through this class.
3133open class SocketIOClient : NSObject , SocketIOClientSpec , SocketEngineClient , SocketParsable {
3234 // MARK: Properties
3335
34- /// The URL of the socket.io server. This is set in the initializer.
35- public let socketURL : URL
36-
3736 /// The engine for this client.
3837 public private( set) var engine : SocketEngineSpec ?
3938
@@ -76,18 +75,24 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
7675 return engine? . sid
7776 }
7877
79- private let logType = " SocketIOClient "
78+ /// The URL of the socket.io server.
79+ ///
80+ /// If changed after calling `init`, `forceNew` must be set to `true`, or it will only connect to the url set in the
81+ /// init.
82+ public var socketURL : URL
8083
81- private var anyHandler : ( ( SocketAnyEvent ) -> Void ) ?
82- private var currentReconnectAttempt = 0
83- private var handlers = [ SocketEventHandler] ( )
84- private var reconnecting = false
84+ var ackHandlers = SocketAckManager ( )
85+ var waitingPackets = [ SocketPacket] ( )
8586
8687 private( set) var currentAck = - 1
8788 private( set) var reconnectAttempts = - 1
8889
89- var ackHandlers = SocketAckManager ( )
90- var waitingPackets = [ SocketPacket] ( )
90+ private let logType = " SocketIOClient "
91+
92+ private var anyHandler : ( ( SocketAnyEvent ) -> ( ) ) ?
93+ private var currentReconnectAttempt = 0
94+ private var handlers = [ SocketEventHandler] ( )
95+ private var reconnecting = false
9196
9297 // MARK: Initializers
9398
@@ -147,13 +152,11 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
147152
148153 // MARK: Methods
149154
150- private func addEngine( ) -> SocketEngineSpec {
155+ private func addEngine( ) {
151156 DefaultSocketLogger . Logger. log ( " Adding engine " , type: logType, args: " " )
152157
153158 engine? . client = nil
154159 engine = SocketEngine ( client: self , url: socketURL, config: config)
155-
156- return engine!
157160 }
158161
159162 /// Connect to the server.
@@ -166,7 +169,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
166169 /// - parameter timeoutAfter: The number of seconds after which if we are not connected we assume the connection
167170 /// has failed. Pass 0 to never timeout.
168171 /// - parameter withHandler: The handler to call when the client fails to connect.
169- open func connect( timeoutAfter: Int , withHandler handler: ( ( ) -> Void ) ? ) {
172+ open func connect( timeoutAfter: Int , withHandler handler: ( ( ) -> ( ) ) ? ) {
170173 assert ( timeoutAfter >= 0 , " Invalid timeout: \( timeoutAfter) " )
171174
172175 guard status != . connected else {
@@ -177,11 +180,11 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
177180 status = . connecting
178181
179182 if engine == nil || forceNew {
180- addEngine ( ) . connect ( )
181- } else {
182- engine? . connect ( )
183+ addEngine ( )
183184 }
184185
186+ engine? . connect ( )
187+
185188 guard timeoutAfter != 0 else { return }
186189
187190 handleQueue. asyncAfter ( deadline: DispatchTime . now ( ) + Double( timeoutAfter) ) { [ weak self] in
@@ -496,7 +499,6 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
496499 return handler. id
497500 }
498501
499-
500502 /// Adds a single-use handler for an event.
501503 ///
502504 /// - parameter event: The event name for this handler.
@@ -522,7 +524,7 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
522524 /// Adds a handler that will be called on every event.
523525 ///
524526 /// - parameter handler: The callback that will execute whenever an event is received.
525- open func onAny( _ handler: @escaping ( SocketAnyEvent ) -> Void ) {
527+ open func onAny( _ handler: @escaping ( SocketAnyEvent ) -> ( ) ) {
526528 anyHandler = handler
527529 }
528530
0 commit comments