diff --git a/Source/SocketIO/Manager/SocketManager.swift b/Source/SocketIO/Manager/SocketManager.swift index eb9e466..ce3e901 100644 --- a/Source/SocketIO/Manager/SocketManager.swift +++ b/Source/SocketIO/Manager/SocketManager.swift @@ -513,6 +513,10 @@ open class SocketManager : NSObject, SocketManagerSpec, SocketParsable, SocketDa self.reconnectAttempts = attempts case let .reconnectWait(wait): reconnectWait = abs(wait) + case let .reconnectWaitMax(wait): + reconnectWaitMax = abs(wait) + case let .randomizationFactor(factor): + randomizationFactor = factor case let .log(log): DefaultSocketLogger.Logger.log = log case let .logger(logger): diff --git a/Source/SocketIO/Util/SocketExtensions.swift b/Source/SocketIO/Util/SocketExtensions.swift index fe9086f..4636327 100644 --- a/Source/SocketIO/Util/SocketExtensions.swift +++ b/Source/SocketIO/Util/SocketExtensions.swift @@ -71,6 +71,10 @@ extension Dictionary where Key == String, Value == Any { return .reconnectAttempts(attempts) case let ("reconnectWait", wait as Int): return .reconnectWait(wait) + case let ("reconnectWaitMax", wait as Int): + return .reconnectWaitMax(wait) + case let ("randomizationFactor", factor as Double): + return .randomizationFactor(factor) case let ("secure", secure as Bool): return .secure(secure) case let ("security", security as SSLSecurity): diff --git a/Tests/TestSocketIO/SocketMangerTest.swift b/Tests/TestSocketIO/SocketMangerTest.swift index b0aa00e..453af2e 100644 --- a/Tests/TestSocketIO/SocketMangerTest.swift +++ b/Tests/TestSocketIO/SocketMangerTest.swift @@ -107,6 +107,8 @@ class SocketMangerTest : XCTestCase { .forceNew(true), .reconnects(false), .reconnectWait(5), + .reconnectWaitMax(5), + .randomizationFactor(0.7), .reconnectAttempts(5) ]) @@ -114,6 +116,8 @@ class SocketMangerTest : XCTestCase { XCTAssertTrue(manager.forceNew) XCTAssertFalse(manager.reconnects) XCTAssertEqual(manager.reconnectWait, 5) + XCTAssertEqual(manager.reconnectWaitMax, 5) + XCTAssertEqual(manager.randomizationFactor, 0.7) XCTAssertEqual(manager.reconnectAttempts, 5) } diff --git a/Tests/TestSocketIOObjc/ManagerObjectiveCTest.m b/Tests/TestSocketIOObjc/ManagerObjectiveCTest.m index 393da4f..a807eed 100644 --- a/Tests/TestSocketIOObjc/ManagerObjectiveCTest.m +++ b/Tests/TestSocketIOObjc/ManagerObjectiveCTest.m @@ -34,6 +34,8 @@ XCTAssertEqual(self.manager.handleQueue, dispatch_get_main_queue()); XCTAssertTrue(self.manager.reconnects); XCTAssertEqual(self.manager.reconnectWait, 10); + XCTAssertEqual(self.manager.reconnectWaitMax, 30); + XCTAssertEqual(self.manager.randomizationFactor, 0.5); XCTAssertEqual(self.manager.status, SocketIOStatusNotConnected); }