Skip to content

Commit 049ccac

Browse files
committed
Add UUID + convenience init
1 parent e9d9081 commit 049ccac

File tree

1 file changed

+22
-7
lines changed

1 file changed

+22
-7
lines changed

Sources/ObservableWebSocketClient/Interface/ObservableWebSocketClient.swift

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,39 @@ import Foundation
99

1010
/// Establishes a WebSocket connection using the given `websocketURL`.
1111
/// Publishes received messages and errors.
12-
@Observable public final class ObservableWebSocketClient: Identifiable {
13-
14-
/// The WebSocket URL to connect to, starting with `wss`.
15-
///
16-
/// E.g., `wss://endpoint.com`
17-
public let websocketURL: URL
12+
@Observable public final class ObservableWebSocketClient: Identifiable, Codable, Equatable {
1813

1914
/// Publishes received messages after the connection is successfully established.
2015
public var message: CodableWebSocketMessage?
2116

2217
/// Publishes any error that may occur.
2318
public var error: ObservableWebSocketClientError?
2419

25-
public init(websocketURL: URL,
20+
public var id: UUID
21+
22+
public let websocketURL: URL
23+
24+
private let service: ObservableWebSocketService
25+
26+
/// Creates an `ObservableWebSocketClient` instance.
27+
///
28+
/// - Parameters:
29+
/// - websocketURL: The WebSocket `URL` to connect to, starting with `wss`.
30+
/// E.g., `wss://endpoint.com`
31+
public convenience init(websocketURL: URL) {
32+
self.init(websocketURL: websocketURL,
33+
message: nil,
34+
error: nil)
35+
}
36+
37+
public init(id: UUID = .init(),
38+
websocketURL: URL,
2639
message: CodableWebSocketMessage? = nil,
2740
error: ObservableWebSocketClientError? = nil) {
41+
self.id = id
2842
self.websocketURL = websocketURL
2943
self.message = message
3044
self.error = error
45+
self.service = ObservableWebSocketService(url: websocketURL)
3146
}
3247
}

0 commit comments

Comments
 (0)