Reconnect on failed ping and remove reconnect timer
I think this does it
This commit is contained in:
@@ -81,9 +81,6 @@ struct ContentView: View {
|
|||||||
@SceneStorage("ContentView.filter_state") var filter_state : FilterState = .posts_and_replies
|
@SceneStorage("ContentView.filter_state") var filter_state : FilterState = .posts_and_replies
|
||||||
@State private var isSideBarOpened = false
|
@State private var isSideBarOpened = false
|
||||||
@StateObject var home: HomeModel = HomeModel()
|
@StateObject var home: HomeModel = HomeModel()
|
||||||
|
|
||||||
// connect retry timer
|
|
||||||
let timer = Timer.publish(every: 4, on: .main, in: .common).autoconnect()
|
|
||||||
|
|
||||||
let sub_id = UUID().description
|
let sub_id = UUID().description
|
||||||
|
|
||||||
@@ -393,9 +390,6 @@ struct ContentView: View {
|
|||||||
self.active_sheet = nil
|
self.active_sheet = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.onReceive(timer) { n in
|
|
||||||
self.damus_state?.pool.connect_to_disconnected()
|
|
||||||
}
|
|
||||||
.onReceive(handle_notify(.new_mutes)) { notif in
|
.onReceive(handle_notify(.new_mutes)) { notif in
|
||||||
home.filter_events()
|
home.filter_events()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,8 +57,13 @@ final class RelayConnection {
|
|||||||
|
|
||||||
func ping() {
|
func ping() {
|
||||||
socket.ping { err in
|
socket.ping { err in
|
||||||
if err != nil {
|
if err == nil {
|
||||||
self.last_pong = .now
|
self.last_pong = .now
|
||||||
|
} else {
|
||||||
|
print("pong failed, reconnecting \(self.url.id)")
|
||||||
|
self.isConnected = false
|
||||||
|
self.isConnecting = false
|
||||||
|
self.reconnect_with_backoff()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user