Documentation

​
​

Development

User Acquisition

Monetization

Industry

Vivox Core SDK

Vivox Core SDK

Vivox
​
​
Vivox Core SDK
  • Overview
  • Before you begin
  • Get started
  • Release notes
  • Developer Guide
    • Client SDK basics
      • Initialize the Vivox SDK
      • Handle messages
      • Message types
      • Character encoding
      • Requests and responses
      • Create the connector object
      • Sign in to a game
      • Sign out of a game
      • Uninitialize the Vivox SDK
    • Channels
    • Presence management
    • Messaging
    • Manage audio
    • Couch co-op
    • Android app development
    • iOS app development
    • macOS app development
    • Windows app development
    • Real-time recording
    • Speech-to-text audio transcription
    • Text-to-speech
    • Troubleshooting
  • Reference
  • Privacy overview
  1. Vivox Core SDK documentation

Message types

How to identify and handle different message types.
Read time 2 minutes
Last updated 8 months ago

Games need a message handler to process Vivox event and response messages.
To determine the message type, check the
vx_message_base_t.type
field.
  • If the type is
    msg_response
    , then the message is of the type
    x_resp_base_t
    , and you can cast the pointer directly to
    vx_resp_base_t
    .
  • If the type is
    msg_event
    , then the message is of the type
    vx_evt_base_t
    , and you can cast the pointer directly to
    vx_evt_base_t
    .
The following code displays an example of these message types:
void MyGamesMessageHandler (vx_message_base_t *msg){ if (msg->type == msg_response) { // Call your response handler here vx_resp_base_t *resp = reinterpret_cast<vx_resp_base_t *>(msg); MyGamesResponseHandler(resp); // implementation below } else if(msg->type == msg_event) { vx_evt_base_t *evt = reinterpret_cast<vx_evt_base_t *>(msg); MyGamesEventHandler(evt); // implementation below }}
If the message is of the type
vx_resp_base
, then the game can look at the
vx_resp_base.type
field to determine the actual response type.
The following code displays an example of this message type:
void MyGamesResponseHandler(vx_resp_base_t *resp){ if (resp->type == resp_connector_create) { // Call your response handler here vx_resp_connector_create_t *typed_resp = reinterpret_cast<x_resp_connector_create_t *>(resp); MyGamesConnectorCreateHandler(typed_resp); } else if (resp->type == ...) { ... }}
If the message is of the type
vx_evt_base
, then the game can look at the
vx_evt_base.type
field to determine the actual response type.
The following code displays an example of this message type:
void MyGamesEventHandler(vx_evt_base_t *evt){ if (evt->type == evt_account_login_state_change) { // Call your response handler here vx_evt_account_login_state_change *typed_evt = reinterpret_cast<vx_evt_account_login_state_change *>(evt); MyGamesLoginStateChangeHandler(typed_evt); } else if (evt->type == ...) { ... }}

Copyright © 2026 Unity Technologies
LegalPrivacy PolicyCookiesDocumentation Terms of UseDo Not Sell or Share My Personal InformationYour Privacy Choices (Cookie Settings)

"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S and elsewhere (more info here). Other names or brands are trademarks of their respective owners.

Some pages are machine-translated for convenience, and may contain inaccuracies. In the event of conflicting information, the English version is authoritative.


    Report a problem with this page