@@ -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