<!--
{
  "availability" : [
    "visionOS: 26.4.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "FoveatedStreaming",
  "identifier" : "/documentation/FoveatedStreaming/FoveatedStreamingSession/availableMessageChannels",
  "metadataVersion" : "0.1.0",
  "role" : "Instance Property",
  "symbol" : {
    "kind" : "Instance Property",
    "modules" : [
      "Foveated Streaming"
    ],
    "preciseIdentifier" : "s:17FoveatedStreaming0aB7SessionC24availableMessageChannelsShyAC0E7ChannelC2IDVGvp"
  },
  "title" : "availableMessageChannels"
}
-->

# availableMessageChannels

A list of all available message channels in this session.

```
@MainActor final var availableMessageChannels: Set<FoveatedStreamingSession.MessageChannel.ID> { get }
```

## Discussion

Observe this property to know when the endpoint creates a new message channel.
Message channels can only be initialized by the endpoint.

For example, you can observe the available message channels by employing <doc://com.apple.documentation/documentation/Observation/withObservationTracking(_:onChange:)>.

```swift
@MainActor
private func monitorAvailableChannels() {
    withObservationTracking {
        for channelId in session.availableMessageChannels {
            // Get the message channel.
        }
    } onChange: {
        Task { @MainActor in
            self.monitorAvailableChannels()
        }
    }
}
```

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)