Skip to content

Commit 80d5dee

Browse files
committed
improved web socket UI connectivity, updated version
1 parent 367b73a commit 80d5dee

File tree

3 files changed

+25
-13
lines changed

3 files changed

+25
-13
lines changed

Mixpanel/Info-tvOS.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>1.0</string>
18+
<string>2.0.0</string>
1919
<key>CFBundleVersion</key>
2020
<string>$(CURRENT_PROJECT_VERSION)</string>
2121
<key>NSPrincipalClass</key>

Mixpanel/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<key>CFBundlePackageType</key>
1616
<string>FMWK</string>
1717
<key>CFBundleShortVersionString</key>
18-
<string>1.0</string>
18+
<string>2.0.0</string>
1919
<key>CFBundleSignature</key>
2020
<string>????</string>
2121
<key>CFBundleVersion</key>

Mixpanel/WebSocketWrapper.swift

Lines changed: 23 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)