File tree Expand file tree Collapse file tree 3 files changed +29
-22
lines changed Expand file tree Collapse file tree 3 files changed +29
-22
lines changed Original file line number Diff line number Diff line change @@ -101,4 +101,25 @@ extension RealtimeChannelV2 {
101
101
}
102
102
return stream
103
103
}
104
+
105
+ /// Listen for broadcast messages sent by other clients within the same channel under a specific `event`.
106
+ public func broadcastStream( event: String ) -> AsyncStream < JSONObject > {
107
+ let ( stream, continuation) = AsyncStream< JSONObject> . makeStream( )
108
+
109
+ let subscription = onBroadcast ( event: event) {
110
+ continuation. yield ( $0)
111
+ }
112
+
113
+ continuation. onTermination = { _ in
114
+ subscription. cancel ( )
115
+ }
116
+
117
+ return stream
118
+ }
119
+
120
+ /// Listen for broadcast messages sent by other clients within the same channel under a specific `event`.
121
+ @available ( * , deprecated, renamed: " broadcastStream(event:) " )
122
+ public func broadcast( event: String ) -> AsyncStream < JSONObject > {
123
+ broadcastStream ( event: event)
124
+ }
104
125
}
Original file line number Diff line number Diff line change @@ -437,30 +437,16 @@ public actor RealtimeChannelV2 {
437
437
}
438
438
}
439
439
440
- /// Listen for broadcast messages sent by other clients within the same channel under a specific
441
- /// `event`.
442
- public func broadcastStream( event: String) - > AsyncStream< JSONObject> {
443
- let ( stream, continuation) = AsyncStream< JSONObject> . makeStream( )
444
-
445
- let id = callbackManager. addBroadcastCallback ( event: event) {
446
- continuation. yield ( $0)
447
- }
448
-
449
- let logger = logger
450
-
451
- continuation. onTermination = { [ weak callbackManager] _ in
440
+ /// Listen for broadcast messages sent by other clients within the same channel under a specific `event`.
441
+ public func onBroadcast(
442
+ event: String,
443
+ callback: @escaping @Sendable ( JSONObject) - > Void
444
+ ) - > Subscription {
445
+ let id = callbackManager. addBroadcastCallback ( event: event, callback: callback)
446
+ return Subscription { [ weak callbackManager, logger] in
452
447
logger? . debug ( " Removing broadcast callback with id: \( id) " )
453
448
callbackManager? . removeCallback ( id: id)
454
449
}
455
-
456
- return stream
457
- }
458
-
459
- /// Listen for broadcast messages sent by other clients within the same channel under a specific
460
- /// `event`.
461
- @available ( * , deprecated, renamed: " broadcastStream(event:) " )
462
- public func broadcast( event: String) - > AsyncStream< JSONObject> {
463
- broadcastStream ( event: event)
464
450
}
465
451
466
452
@discardableResult
Original file line number Diff line number Diff line change @@ -12,7 +12,7 @@ public final class ObservationToken: Sendable {
12
12
let _onCancel = LockIsolated ( ( @Sendable ( ) - > Void) ? . none)
13
13
14
14
package init ( _ onCancel: ( @Sendable ( ) -> Void ) ? = nil ) {
15
- self . _onCancel. setValue ( onCancel)
15
+ _onCancel. setValue ( onCancel)
16
16
}
17
17
18
18
@available ( * , deprecated, renamed: " cancel " )
You can’t perform that action at this time.
0 commit comments