Even more aggressive reconnects
Sometimes it gets stuck in a "reconnecting" state. We'll retry even these connections if the last connection attempt is too old.
This commit is contained in:
@@ -876,7 +876,7 @@
|
|||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = damus/damus.entitlements;
|
CODE_SIGN_ENTITLEMENTS = damus/damus.entitlements;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 2;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"damus/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"damus/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = XK7H4JAB3D;
|
DEVELOPMENT_TEAM = XK7H4JAB3D;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -896,7 +896,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)",
|
"$(PROJECT_DIR)",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 0.1.4;
|
MARKETING_VERSION = 0.1.5;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.jb55.damus2;
|
PRODUCT_BUNDLE_IDENTIFIER = com.jb55.damus2;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
@@ -915,7 +915,7 @@
|
|||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = damus/damus.entitlements;
|
CODE_SIGN_ENTITLEMENTS = damus/damus.entitlements;
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 2;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_ASSET_PATHS = "\"damus/Preview Content\"";
|
DEVELOPMENT_ASSET_PATHS = "\"damus/Preview Content\"";
|
||||||
DEVELOPMENT_TEAM = XK7H4JAB3D;
|
DEVELOPMENT_TEAM = XK7H4JAB3D;
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
@@ -935,7 +935,7 @@
|
|||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"$(PROJECT_DIR)",
|
"$(PROJECT_DIR)",
|
||||||
);
|
);
|
||||||
MARKETING_VERSION = 0.1.4;
|
MARKETING_VERSION = 0.1.5;
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.jb55.damus2;
|
PRODUCT_BUNDLE_IDENTIFIER = com.jb55.damus2;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||||
|
|||||||
@@ -35,12 +35,12 @@ class RelayConnection: WebSocketDelegate {
|
|||||||
self.disconnect()
|
self.disconnect()
|
||||||
} else {
|
} else {
|
||||||
// we're already disconnected, so just connect
|
// we're already disconnected, so just connect
|
||||||
self.connect()
|
self.connect(force: true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func connect(){
|
func connect(force: Bool = false){
|
||||||
if self.isConnected || self.isConnecting {
|
if !force && (self.isConnected || self.isConnecting) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -81,11 +81,18 @@ class RelayPool {
|
|||||||
func connect_to_disconnected() {
|
func connect_to_disconnected() {
|
||||||
for relay in relays {
|
for relay in relays {
|
||||||
let c = relay.connection
|
let c = relay.connection
|
||||||
if relay.is_broken || c.isReconnecting || c.isConnecting || c.isConnected {
|
|
||||||
|
let is_connecting = c.isReconnecting || c.isConnecting
|
||||||
|
|
||||||
|
if is_connecting && (Date.now.timeIntervalSince1970 - c.last_connection_attempt) > 10 {
|
||||||
|
print("stale connection detected (\(relay.descriptor.url.absoluteString)). retrying...")
|
||||||
|
relay.connection.connect(force: true)
|
||||||
|
} else if relay.is_broken || is_connecting || c.isConnected {
|
||||||
continue
|
continue
|
||||||
|
} else {
|
||||||
|
relay.connection.reconnect()
|
||||||
}
|
}
|
||||||
|
|
||||||
relay.connection.reconnect()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user