Skip to content

Commit cb04a37

Browse files
committed
Add availability conditional for URL init
1 parent 24ea66e commit cb04a37

File tree

1 file changed

+25
-12
lines changed

1 file changed

+25
-12
lines changed

Sources/WebSocketKit/WebSocket+Connect.swift

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -20,19 +20,32 @@ extension WebSocket {
2020
on eventLoopGroup: EventLoopGroup,
2121
onUpgrade: @Sendable @escaping (WebSocket) -> ()
2222
) -> EventLoopFuture<Void> {
23-
guard
24-
url.hasPrefix("ws://") || url.hasPrefix("wss://"),
25-
let url = URL(string: url)
26-
else {
27-
return eventLoopGroup.any().makeFailedFuture(WebSocketClient.Error.invalidURL)
23+
if #available(iOS 17.0, macOS 14.0, tvOS 17.0, watchOS 10.0, visionOS 1.0, *) {
24+
guard let url = URL(
25+
string: url,
26+
encodingInvalidCharacters: false
27+
) else {
28+
return eventLoopGroup.any().makeFailedFuture(WebSocketClient.Error.invalidURL)
29+
}
30+
return self.connect(
31+
to: url,
32+
headers: headers,
33+
configuration: configuration,
34+
on: eventLoopGroup,
35+
onUpgrade: onUpgrade
36+
)
37+
} else {
38+
guard let url = URL(string: url) else {
39+
return eventLoopGroup.any().makeFailedFuture(WebSocketClient.Error.invalidURL)
40+
}
41+
return self.connect(
42+
to: url,
43+
headers: headers,
44+
configuration: configuration,
45+
on: eventLoopGroup,
46+
onUpgrade: onUpgrade
47+
)
2848
}
29-
return self.connect(
30-
to: url,
31-
headers: headers,
32-
configuration: configuration,
33-
on: eventLoopGroup,
34-
onUpgrade: onUpgrade
35-
)
3649
}
3750

3851
/// Establish a WebSocket connection.

0 commit comments

Comments
 (0)