Listing Oracle Radio WebSocket Channel Subscriptions
Send a LIST_CHANNELS message to list the channels joined by the current Radio WebSocket connection.
Permissions and Prerequisites
The following permissions and prerequisites apply to this operation.
| Requirement | Value |
|---|---|
| Authentication | Complete the supported authentication path for the client before sending this operation. See authentication. |
| Radio permission | radio.channel.subscribe |
| Channel access | The result includes only the current connection's live channel memberships in its authorized scope. A live membership isn't an ACL grant. |
| Session state | The WebSocket connection must be open. The operation can return an empty list. |
Note
The contract doesn't define whether a subscription survives a reconnect. Rebuild and verify connection-local membership after reconnecting.
The contract doesn't define whether a subscription survives a reconnect. Rebuild and verify connection-local membership after reconnecting.
Request
Send the LIST_CHANNELS message as a JSON text message.
| Name | Data type | Required | Default | Constraints | Description |
|---|---|---|---|---|---|
type | string | Yes | None | Must be LIST_CHANNELS. | Identifies the current-connection channel-list operation. |
{
"type": "LIST_CHANNELS"
}
Responses
The following table lists the messages the client can receive and explains their purpose.
| Message type | Kind | Description |
|---|---|---|
CHANNELS_LIST | Direct response | Returns the current connection's joined channels and their status. |
ERROR | Denial or error | Indicates a permission, identity-domain, validation, or processing failure. |
CHANNELS_LIST Response
The following table describes the response properties, their data types, and whether they are required.
| Name | Data type | Required | Description |
|---|---|---|---|
type | string | Yes | Response type. The value is CHANNELS_LIST. |
channels | array of strings | Yes | Channel names joined by the current connection. |
status | object | No | Status keyed by channel name. |
status.*.busy | boolean | No | Whether the channel is busy. |
status.*.busyBy | string | No | Username of the current talk-token holder. |
status.*.busyByDisplayName | string | No | Display name of the current talk-token holder. |
status.*.priority | integer | No | Priority of the current talk token. |
status.*.isTransmitting | boolean | No | Whether a user is transmitting on the channel. |
{
"type": "CHANNELS_LIST",
"channels": ["operations", "dispatch"],
"status": {
"operations": {
"busy": false
},
"dispatch": {
"busy": true,
"busyBy": "dispatcher1",
"isTransmitting": true
}
}
}