diff --git a/Sources/Realtime/V2/RealtimeChannelV2.swift b/Sources/Realtime/V2/RealtimeChannelV2.swift index a8fe9f8b..284ff3b4 100644 --- a/Sources/Realtime/V2/RealtimeChannelV2.swift +++ b/Sources/Realtime/V2/RealtimeChannelV2.swift @@ -12,6 +12,7 @@ import Helpers public struct RealtimeChannelConfig: Sendable { public var broadcast: BroadcastJoinConfig public var presence: PresenceJoinConfig + public var isPrivate: Bool } struct Socket: Sendable { @@ -111,7 +112,8 @@ public final class RealtimeChannelV2: Sendable { let joinConfig = RealtimeJoinConfig( broadcast: config.broadcast, presence: config.presence, - postgresChanges: mutableState.clientChanges + postgresChanges: mutableState.clientChanges, + isPrivate: config.isPrivate ) let payload = RealtimeJoinPayload( diff --git a/Sources/Realtime/V2/RealtimeClientV2.swift b/Sources/Realtime/V2/RealtimeClientV2.swift index 3dd247f4..f202de0d 100644 --- a/Sources/Realtime/V2/RealtimeClientV2.swift +++ b/Sources/Realtime/V2/RealtimeClientV2.swift @@ -249,7 +249,8 @@ public final class RealtimeClientV2: Sendable { ) -> RealtimeChannelV2 { var config = RealtimeChannelConfig( broadcast: BroadcastJoinConfig(acknowledgeBroadcasts: false, receiveOwnBroadcasts: false), - presence: PresenceJoinConfig(key: "") + presence: PresenceJoinConfig(key: ""), + isPrivate: false ) options(&config) diff --git a/Sources/Realtime/V2/RealtimeJoinConfig.swift b/Sources/Realtime/V2/RealtimeJoinConfig.swift index cebb5fc6..1b510494 100644 --- a/Sources/Realtime/V2/RealtimeJoinConfig.swift +++ b/Sources/Realtime/V2/RealtimeJoinConfig.swift @@ -21,10 +21,12 @@ struct RealtimeJoinConfig: Codable, Hashable { var broadcast: BroadcastJoinConfig = .init() var presence: PresenceJoinConfig = .init() var postgresChanges: [PostgresJoinConfig] = [] + var isPrivate: Bool = false enum CodingKeys: String, CodingKey { case broadcast case presence + case isPrivate = "private" case postgresChanges = "postgres_changes" } } diff --git a/Tests/RealtimeTests/RealtimeTests.swift b/Tests/RealtimeTests/RealtimeTests.swift index 76e3bdcb..5ef22e6a 100644 --- a/Tests/RealtimeTests/RealtimeTests.swift +++ b/Tests/RealtimeTests/RealtimeTests.swift @@ -257,6 +257,7 @@ extension RealtimeMessageV2 { ["schema": "public", "table": "messages", "event": "DELETE"], ], "presence": ["key": ""], + "private": false, ], ] ) diff --git a/Tests/RealtimeTests/_PushTests.swift b/Tests/RealtimeTests/_PushTests.swift index 4cefaca7..3c7aef5b 100644 --- a/Tests/RealtimeTests/_PushTests.swift +++ b/Tests/RealtimeTests/_PushTests.swift @@ -38,7 +38,8 @@ final class _PushTests: XCTestCase { topic: "realtime:users", config: RealtimeChannelConfig( broadcast: .init(acknowledgeBroadcasts: false), - presence: .init() + presence: .init(), + isPrivate: false ), socket: Socket(client: socket), logger: nil