@@ -22,6 +22,7 @@ class WebSocketWrapper: WebSocketDelegate {
2222 static let sessionVariantKey = " session_variant "
2323 static let startLoadingAnimationKey = " connectivityBarLoading "
2424 static let finishLoadingAnimationKey = " connectivtyBarFinished "
25+ static var retries = 0
2526 var open : Bool
2627 var connected : Bool
2728 let url : URL
@@ -71,27 +72,25 @@ class WebSocketWrapper: WebSocketDelegate {
7172 }
7273
7374 func open( initiate: Bool , maxInterval: Int = 0 , maxRetries: Int = 0 ) {
74- var retries = 0
75-
7675 Logger . debug ( message: " In opening connection. Initiate: \( initiate) , "
77- + " retries: \( retries) , maxRetries: \( maxRetries) , "
76+ + " retries: \( WebSocketWrapper . retries) , maxRetries: \( maxRetries) , "
7877 + " maxInterval: \( maxInterval) , connected: \( connected) " )
7978
80- if connected || retries > maxRetries {
79+ if connected || WebSocketWrapper . retries > maxRetries {
8180 // exit retry loop if any of the conditions are met
82- retries = 0
83- } else if initiate || retries > 0 {
81+ WebSocketWrapper . retries = 0
82+ } else if initiate || WebSocketWrapper . retries > 0 {
8483 if !open {
85- Logger . debug ( message: " Attempting to open WebSocket to \( url) , try \( retries) out of \( maxRetries) " )
84+ Logger . debug ( message: " Attempting to open WebSocket to \( url) , try \( WebSocketWrapper . retries) out of \( maxRetries) " )
8685 open = true
8786 webSocket. connect ( )
8887 }
8988 }
90- if retries < maxRetries {
91- DispatchQueue . main. asyncAfter ( deadline: . now( ) + min( pow ( 1.4 , Double ( retries) ) , Double ( maxInterval) ) ) {
89+ if WebSocketWrapper . retries < maxRetries {
90+ DispatchQueue . main. asyncAfter ( deadline: . now( ) + min( pow ( 1.4 , Double ( WebSocketWrapper . retries) ) , Double ( maxInterval) ) ) {
9291 self . open ( initiate: false , maxInterval: maxInterval, maxRetries: maxRetries)
9392 }
94- retries += 1
93+ WebSocketWrapper . retries += 1
9594 }
9695 }
9796
@@ -214,9 +213,11 @@ class WebSocketWrapper: WebSocketDelegate {
214213 }
215214
216215 func websocketDidReceiveMessage( _ socket: WebSocket , text: String ) {
216+ var shouldShowUI = false
217217 if !connected {
218218 connected = true
219219 showConnectedView ( loading: true )
220+ shouldShowUI = true
220221 if let callback = connectCallback {
221222 callback ( )
222223 }
@@ -226,14 +227,21 @@ class WebSocketWrapper: WebSocketDelegate {
226227 Logger . info ( message: " WebSocket received message: \( message. debugDescription) " )
227228 if let commandOperation = message? . responseCommand ( connection: self ) {
228229 commandQueue. addOperation ( commandOperation)
230+ if shouldShowUI {
231+ showConnectedView ( loading: false )
232+ }
233+ } else if shouldShowUI {
234+ hideConnectedView ( )
229235 }
230236 }
231237 }
232238
233239 func websocketDidReceiveData( _ socket: WebSocket , data: Data ) {
240+ var shouldShowUI = false
234241 if !connected {
235242 connected = true
236243 showConnectedView ( loading: true )
244+ shouldShowUI = true
237245 if let callback = connectCallback {
238246 callback ( )
239247 }
@@ -243,14 +251,18 @@ class WebSocketWrapper: WebSocketDelegate {
243251 Logger . info ( message: " WebSocket received message: \( message. debugDescription) " )
244252 if let commandOperation = message? . responseCommand ( connection: self ) {
245253 commandQueue. addOperation ( commandOperation)
254+ if shouldShowUI {
255+ showConnectedView ( loading: false )
256+ }
257+ } else {
258+ hideConnectedView ( )
246259 }
247260
248261 }
249262
250263 func websocketDidConnect( _ socket: WebSocket ) {
251264 Logger . info ( message: " WebSocket \( socket) did open " )
252265 commandQueue. isSuspended = false
253- showConnectedView ( loading: false )
254266 }
255267
256268 func websocketDidDisconnect( _ socket: WebSocket , error: NSError ? ) {
0 commit comments