@@ -51,7 +51,24 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
5151 public var nsp = " / "
5252
5353 /// The configuration for this client.
54- public var config : SocketIOClientConfiguration
54+ ///
55+ /// **This cannot be set after calling one of the connect methods**.
56+ public var config : SocketIOClientConfiguration {
57+ didSet {
58+ guard status == . notConnected else {
59+ DefaultSocketLogger . Logger. error ( " Tried setting config after calling connect " ,
60+ type: SocketIOClient . logType)
61+ return
62+ }
63+
64+ if socketURL. absoluteString. hasPrefix ( " https:// " ) {
65+ config. insert ( . secure( true ) )
66+ }
67+
68+ config. insert ( . path( " /socket.io/ " ) , replacing: false )
69+ setConfigs ( )
70+ }
71+ }
5572
5673 /// If `true`, this client will try and reconnect on any disconnects.
5774 @objc
@@ -130,32 +147,11 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
130147 self . config. insert ( . secure( true ) )
131148 }
132149
133- for option in config {
134- switch option {
135- case let . reconnects( reconnects) :
136- self . reconnects = reconnects
137- case let . reconnectAttempts( attempts) :
138- reconnectAttempts = attempts
139- case let . reconnectWait( wait) :
140- reconnectWait = abs ( wait)
141- case let . nsp( nsp) :
142- self . nsp = nsp
143- case let . log( log) :
144- DefaultSocketLogger . Logger. log = log
145- case let . logger( logger) :
146- DefaultSocketLogger . Logger = logger
147- case let . handleQueue( queue) :
148- handleQueue = queue
149- case let . forceNew( force) :
150- forceNew = force
151- default :
152- continue
153- }
154- }
155-
156150 self . config. insert ( . path( " /socket.io/ " ) , replacing: false )
157151
158152 super. init ( )
153+
154+ setConfigs ( )
159155 }
160156
161157 /// Not so type safe way to create a SocketIOClient, meant for Objective-C compatiblity.
@@ -670,6 +666,31 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
670666 handleQueue. asyncAfter ( deadline: DispatchTime . now ( ) + Double( reconnectWait) , execute: _tryReconnect)
671667 }
672668
669+ private func setConfigs( ) {
670+ for option in config {
671+ switch option {
672+ case let . reconnects( reconnects) :
673+ self . reconnects = reconnects
674+ case let . reconnectAttempts( attempts) :
675+ reconnectAttempts = attempts
676+ case let . reconnectWait( wait) :
677+ reconnectWait = abs ( wait)
678+ case let . nsp( nsp) :
679+ self . nsp = nsp
680+ case let . log( log) :
681+ DefaultSocketLogger . Logger. log = log
682+ case let . logger( logger) :
683+ DefaultSocketLogger . Logger = logger
684+ case let . handleQueue( queue) :
685+ handleQueue = queue
686+ case let . forceNew( force) :
687+ forceNew = force
688+ default :
689+ continue
690+ }
691+ }
692+ }
693+
673694 // Test properties
674695
675696 var testHandlers : [ SocketEventHandler ] {
0 commit comments