@@ -51,7 +51,24 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
51
51
public var nsp = " / "
52
52
53
53
/// 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
+ }
55
72
56
73
/// If `true`, this client will try and reconnect on any disconnects.
57
74
@objc
@@ -130,32 +147,11 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
130
147
self . config. insert ( . secure( true ) )
131
148
}
132
149
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
-
156
150
self . config. insert ( . path( " /socket.io/ " ) , replacing: false )
157
151
158
152
super. init ( )
153
+
154
+ setConfigs ( )
159
155
}
160
156
161
157
/// 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
670
666
handleQueue. asyncAfter ( deadline: DispatchTime . now ( ) + Double( reconnectWait) , execute: _tryReconnect)
671
667
}
672
668
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
+
673
694
// Test properties
674
695
675
696
var testHandlers : [ SocketEventHandler ] {
0 commit comments