Documentation

Support

Vivox Core SDK

Vivox Core SDK

Participant Events

Manage participant events when users join or leave channels.
Read time 1 minuteLast updated 20 hours ago

The Vivox SDK posts information about individual participants in a channel that is visible to all other participants. This includes the following information:
  • When a user joins a channel
  • When a user leaves a channel
  • When there is an important change in user state, such as whether the user is speaking or typing
Handling participant events is optional. If there is no visualization of user state (for example, displaying who has voice enabled), then the game can ignore these events. To provide a visualization of user state information, a game must handle the following messages:
  • vx_evt_participant_added
  • vx_evt_participant_removed
  • vx_evt_participant_updated
The following code displays an example of how to handle these messages:
void HandleParticipantAddedEvent(vx_evt_participant_added *evt){ printf("User %s joined %s\n", evt->encoded_uri_with_tag, evt->session_handle);}void HandleParticipantRemovedEvent(vx_evt_participant_removed *evt){ printf("User %s left %s\n", evt->encoded_uri_with_tag, evt->session_handle);}void HandleParticipantUpdatedEvent(vx_evt_participant_updated *evt){ printf("User %s %s speaking to %s\n", evt->encoded_uri_with_tag,evt->is_speaking ? "is" : "is not", evt->session_handle);}
When keeping track of participant state, it is important to use the
encoded_uri_with_tag
field as the unique identifier of the participant. This allows the game to distinguish between users who have left a channel and users who have rejoined a channel.