8000 Merge pull request #1464 from socketio/development · socketio/socket.io-client-swift@d690d9c · GitHub
[go: up one dir, main page]

Skip to content
Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit d690d9c

Browse files
authored
Merge pull request #1464 from socketio/development
v16.1.1
2 parents 175da8b + 99cc244 commit d690d9c

File tree

13 files changed

+77
-18
lines changed

13 files changed

+77
-18
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,5 @@ Socket.IO-Test-Server/node_modules/*
5050
.idea/
5151
docs/docsets/
5252
docs/undocumented.json
53+
54+
.swiftpm

.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.resolved

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
"repositoryURL": "https://github.com/daltoniam/Starscream",
77
"state": {
88
"branch": null,
9-
"revision": "ac6c0fc9da221873e01bd1a0d4818498a71eef33",
10-
"version": "4.0.6"
9+
"revision": "c6bfd1af48efcc9a9ad203665db12375ba6b145a",
10+
"version": "4.0.8"
1111
}
1212
}
1313
]

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ let package = Package(
88
.library(name: "SocketIO", targets: ["SocketIO"])
99
],
1010
dependencies: [
11-
.package(url: "https://github.com/daltoniam/Starscream", .exactItem("4.0.6")),
11+
.package(url: "https://github.com/daltoniam/Starscream", .upToNextMajor(from: "4.0.8")),
1212
],
1313
targets: [
1414
.target(name: "SocketIO", dependencies: ["Starscream"]),

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ socket.on("currentAmount") {data, ack in
1818
guard let cur = data[0] as? Double else { return }
1919

2020
socket.emitWithAck("canUpdate", cur).timingOut(after: 0) {data in
21-
if data.first as? String ?? "passed" == SocketAckValue.noAck {
21+
if data.first as? String ?? "passed" == SocketAckStatus.noAck {
2222
// Handle ack timeout
2323
}
2424

Socket.IO-Client-Swift.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Pod::Spec.new do |s|
1111
s.homepage = "https://github.com/socketio/socket.io-client-swift"
1212
s.license = { :type => 'MIT' }
1313
s.author = { "Erik" => "nuclear.ace@gmail.com" }
14-
s.ios.deployment_target = '11.0'
14+
s.ios.deployment_target = '12.0'
1515
s.osx.deployment_target = '10.13'
1616
s.tvos.deployment_target = '12.0'
1717
s.watchos.deployment_target = '5.0'

Socket.IO-Client-Swift.xcodeproj/project.pbxproj

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -652,6 +652,7 @@
652652
GCC_WARN_UNUSED_VARIABLE = YES;
653653
INFOPLIST_FILE = SocketIO/Info.plist;
654654
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
655+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
655656
LD_RUNPATH_SEARCH_PATHS = (
656657
"$(inherited)",
657658
"@executable_path/Frameworks",
@@ -678,7 +679,7 @@
678679
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
679680
SWIFT_VERSION = 5.0;
680681
TARGETED_DEVICE_FAMILY = "1,2,3,4,7";
681-
TVOS_DEPLOYMENT_TARGET = 10.0;
682+
TVOS_DEPLOYMENT_TARGET = 12.0;
682683
VALID_ARCHS = "$(inherited)";
683684
VERSIONING_SYSTEM = "apple-generic";
684685
VERSION_INFO_PREFIX = "";
@@ -728,6 +729,7 @@
728729
GCC_WARN_UNUSED_VARIABLE = YES;
729730
INFOPLIST_FILE = SocketIO/Info.plist;
730731
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
732+
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
731733
LD_RUNPATH_SEARCH_PATHS = (
732734
"$(inherited)",
733735
"@executable_path/Frameworks",
@@ -752,7 +754,7 @@
752754
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
753755
SWIFT_VERSION = 5.0;
754756
TARGETED_DEVICE_FAMILY = "1,2,3,4,7";
755-
TVOS_DEPLOYMENT_TARGET = 10.0;
757+
TVOS_DEPLOYMENT_TARGET = 12.0;
756758
VALID_ARCHS = "$(inherited)";
757759
VERSIONING_SYSTEM = "apple-generic";
758760
VERSION_INFO_PREFIX = "";
@@ -832,7 +834,7 @@
832834
"@loader_path/../Frameworks",
833835
);
834836
LIBRARY_SEARCH_PATHS = "$(inherited)";
835-
MACOSX_DEPLOYMENT_TARGET = 10.10;
837+
MACOSX_DEPLOYMENT_TARGET = 10.13;
836838
MTL_ENABLE_DEBUG_INFO = YES;
837839
ONLY_ACTIVE_ARCH = YES;
838840
PRODUCT_BUNDLE_IDENTIFIER = "io.socket.$(PRODUCT_NAME:rfc1034identifier)";
@@ -842,7 +844,7 @@
842844
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
843845
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
844846
SWIFT_VERSION = 5.0;
845-
TVOS_DEPLOYMENT_TARGET = 10.0;
847+
TVOS_DEPLOYMENT_TARGET = 12.0;
846848
VALID_ARCHS = "$(inherited)";
847849
};
848850
name = Debug;
@@ -914,15 +916,15 @@
914916
"@loader_path/../Frameworks",
915917
);
916918
LIBRARY_SEARCH_PATHS = "$(inherited)";
917-
MACOSX_DEPLOYMENT_TARGET = 10.10;
919+
MACOSX_DEPLOYMENT_TARGET = 10.13;
918920
MTL_ENABLE_DEBUG_INFO = NO;
919921
PRODUCT_BUNDLE_IDENTIFIER = "io.socket.$(PRODUCT_NAME:rfc1034identifier)";
920922
PRODUCT_NAME = "$(TARGET_NAME)";
921923
SDKROOT = macosx;
922924
SUPPORTED_PLATFORMS = "$(inherited)";
923925
SWIFT_SWIFT3_OBJC_INFERENCE = Default;
924926
SWIFT_VERSION = 5.0;
925-
TVOS_DEPLOYMENT_TARGET = 10.0;
927+
TVOS_DEPLOYMENT_TARGET = 12.0;
926928
VALID_ARCHS = "$(inherited)";
927929
};
928930
name = Release;

Source/SocketIO/Ack/SocketAckEmitter.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,8 +136,8 @@ public final class OnAckCallback: NSObject {
136136

137137
guard seconds != 0 else { return }
138138

139-
socket.manager?.handleQueue.asyncAfter(deadline: DispatchTime.now() + seconds) {[weak socket, weak self] in
140-
guard let socket = socket, let `self` = self else { return }
139+
socket.manager?.handleQueue.asyncAfter(deadline: DispatchTime.now() + seconds) {[weak socket] in
140+
guard let socket = socket else { return }
141141

142142
socket.ackHandlers.timeoutAck(self.ackNumber)
143143
}

Source/SocketIO/Client/SocketIOClient.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,8 @@ open class SocketIOClient: NSObject, SocketIOClientSpec {
150150

151151
manager.handleQueue.asyncAfter(deadline: DispatchTime.now() + timeoutAfter) {[weak self] in
152152
guard let this = self, this.status == .connecting || this.status == .notConnected else { return }
153-
153+
DefaultSocketLogger.Logger.log("Timeout: Socket not connected, so setting to disconnected", type: this.logType)
154+
154155
this.status = .disconnected
155156
this.leaveNamespace()
156157

Source/SocketIO/Engine/SocketEngine.swift

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -761,6 +761,12 @@ extension SocketEngine {
761761
case .disconnected(_, _):
762762
wsConnected = false
763763
websocketDidDisconnect(error: nil)
764+
case .viabilityChanged(false):
765+
wsConnected = false
766+
websocketDidDisconnect(error: nil)
767+
case .peerClosed:
768+
wsConnected = false
769+
websocketDidDisconnect(error: nil)
764770
case let .text(msg):
765771
parseEngineMessage(msg)
766772
case let .binary(data):

Source/SocketIO/Manager/SocketManager.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ open class SocketManager: NSObject, SocketManagerSpec, SocketParsable, SocketDat
132132
private(set) var reconnectAttempts = -1
133133

134134
private var _config: SocketIOClientConfiguration
135-
private var currentReconnectAttempt = 0
135+
internal var currentReconnectAttempt = 0
136136
private var reconnecting = false
137137

138138
// MARK: Initializers
@@ -186,9 +186,8 @@ open class SocketManager: NSObject, SocketManagerSpec, SocketParsable, SocketDat
186186
///
187187
/// Override if you wish to attach a custom `SocketEngineSpec`.
188188
open func connect() {
189-
guard !status.active else {
189+
if status == .connected || (status == .connecting && currentReconnectAttempt == 0) {
190190
DefaultSocketLogger.Logger.log("Tried connecting an already active socket", type: SocketManager.logType)
191-
192191
return
193192
}
194193

Tests/TestSocketIO/SocketMangerTest.swift

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,44 @@ class SocketMangerTest : XCTestCase {
6060
waitForExpectations(timeout: 0.3)
6161
}
6262

63+
func testManagerDoesNotCallConnectWhenConnectingWithLessThanOneReconnect() {
64+
setUpSockets()
65+
66+
let expect = expectation(description: "The manager should not call connect on the engine")
67+
expect.isInverted = true
68+
69+
let engine = TestEngine(client: manager, url: manager.socketURL, options: nil)
70+
71+
engine.onConnect = {
72+
expect.fulfill()
73+
}
74+
manager.setTestStatus(.connecting)
75+
manager.setCurrentReconnect(currentReconnect: 0)
76+
manager.engine = engine
77+
78+
manager.connect()
79+
80+
waitForExpectations(timeout: 0.3)
81+
}
82+
83+
func testManagerCallConnectWhenConnectingAndMoreThanOneReconnect() {
84+
setUpSockets()
85+
86+
let expect = expectation(description: "The manager should call connect on the engine")
87+
let engine = TestEngine(client: manager, url: manager.socketURL, options: nil)
88+
89+
engine.onConnect = {
90+
expect.fulfill()
91+
}
92+
manager.setTestStatus(.connecting)
93+
manager.setCurrentReconnect(currentReconnect: 1)
94+
manager.engine = engine
95+
96+
manager.connect()
97+
98+
waitForExpectations(timeout: 0.8)
99+
}
100+
63101
func testManagerCallsDisconnect() {
64102
setUpSockets()
65103

@@ -154,6 +192,10 @@ public enum ManagerExpectation: String {
154192
}
155193

156194
public class TestManager: SocketManager {
195+
public func setCurrentReconnect(currentReconnect: Int) {
196+
self.currentReconnectAttempt = currentReconnect
197+
}
198+
157199
public override func disconnect() {
158200
setTestStatus(.disconnected)
159201
}

Tests/TestSocketIO/SocketSideEffectTest.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -487,7 +487,7 @@ class TestEngine: SocketEngineSpec {
487487
private(set) var ws: WebSocket? = nil
488488
private(set) var version = SocketIOVersion.three
489489

490-
fileprivate var onConnect: (() -> ())?
490+
internal var onConnect: (() -> ())?
491491

492492
required init(client: SocketEngineClient, url: URL, options: [String: Any]?) {
493493
self.client = client

0 commit comments

Comments
 (0)
0