Listing Oracle Radio WebSocket Channel Users

Send a LIST_CHANNEL_USERS message to list users with at least one active WebSocket session subscribed to a Radio channel.

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 permissionRequires radio.channel.subscribe.
Channel accessRequest only a channel that the authenticated user is authorized to access.
Session stateThe WebSocket connection must be open. The response describes users currently connected to the channel, not saved subscriptions.
Important

Current location is sensitive. Use, display, and store it only for an authorized operational purpose and in accordance with applicable policy. When no current location is available, the response omits location.

Request

Send the LIST_CHANNEL_USERS message as a JSON text message.

NameData typeRequiredDefaultConstraintsDescription
typestringYesNoneMust be LIST_CHANNEL_USERS.Identifies the channel-user list operation.
channelstringYesNoneChannel name.Channel for which to list connected users.
{
  "type": "LIST_CHANNEL_USERS",
  "channel": "operations"
}

Responses

The following table lists the messages the client can receive and explains their purpose.

Message typeKindDescription
CHANNEL_USERSDirect responseReturns connected user identifiers, display names, current locations when available, and the count for the channel.
ERRORDenial or errorIndicates a permission, identity-domain, missing-channel-name, validation, or processing failure.

CHANNEL_USERS Response

The following table describes the response properties, their data types, and whether they are required.

NameData typeRequiredDescription
typestringYesResponse type. The value is CHANNEL_USERS.
channelstringYesChannel name.
usersarray of stringsYesUsernames of connected users.
userDisplayNamesobjectYesDisplay names keyed by username.
userDetailsarray of objectsYesAuthenticated user identities and their latest unexpired current locations.
userDetails[].usernamestringYesUsername.
userDetails[].userIdstringYesRadio user identifier.
userDetails[].displayNamestringYesUser display name.
userDetails[].locationobjectNoLatest unexpired current location. Omitted when no current location is available.
userDetails[].location.latitudenumberWhen location is an objectLatitude of the current location.
userDetails[].location.longitudenumberWhen location is an objectLongitude of the current location.
userDetails[].location.timestampstringWhen location is an objectDate and time of the current location in ISO 8601 format.
countintegerYesNumber of connected users returned.
{
  "type": "CHANNEL_USERS",
  "channel": "operations",
  "users": ["dispatcher1", "field-unit-1", "field-unit-2"],
  "userDisplayNames": {
    "dispatcher1": "Dispatch One",
    "field-unit-1": "Field Unit One",
    "field-unit-2": "Field Unit Two"
  },
  "userDetails": [
    {
      "username": "dispatcher1",
      "userId": "user-dispatcher1",
      "displayName": "Dispatch One"
    },
    {
      "username": "field-unit-1",
      "userId": "user-field-unit-1",
      "displayName": "Field Unit One",
      "location": {
        "latitude": 37.77,
        "longitude": -122.41,
        "timestamp": "2026-08-24T12:00:00Z"
      }
    },
    {
      "username": "field-unit-2",
      "userId": "user-field-unit-2",
      "displayName": "Field Unit Two"
    }
  ],
  "count": 3
}