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.

RequirementValue
AuthenticationComplete the supported authentication path for the client before sending this operation. See authentication.
Radio permissionradio.channel.subscribe
Channel accessThe result includes only the current connection's live channel memberships in its authorized scope. A live membership isn't an ACL grant.
Session stateThe 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.

Request

Send the LIST_CHANNELS message as a JSON text message.

NameData typeRequiredDefaultConstraintsDescription
typestringYesNoneMust 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 typeKindDescription
CHANNELS_LISTDirect responseReturns the current connection's joined channels and their status.
ERRORDenial or errorIndicates 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.

NameData typeRequiredDescription
typestringYesResponse type. The value is CHANNELS_LIST.
channelsarray of stringsYesChannel names joined by the current connection.
statusobjectNoStatus keyed by channel name.
status.*.busybooleanNoWhether the channel is busy.
status.*.busyBystringNoUsername of the current talk-token holder.
status.*.busyByDisplayNamestringNoDisplay name of the current talk-token holder.
status.*.priorityintegerNoPriority of the current talk token.
status.*.isTransmittingbooleanNoWhether a user is transmitting on the channel.
{
  "type": "CHANNELS_LIST",
  "channels": ["operations", "dispatch"],
  "status": {
    "operations": {
      "busy": false
    },
    "dispatch": {
      "busy": true,
      "busyBy": "dispatcher1",
      "isTransmitting": true
    }
  }
}