Interface ClientConfig

Interface for defining the behavior of a web client.

You need to configure it when calling the createClient method to create a web client.

The mode and codec properties are required.


  • ClientConfig



Optional clientRoleOptions

clientRoleOptions: ClientRoleOptions

The detailed options of the user role, including user level.

The user level determines the level of services that a user can enjoy within the permissions of the user's role. For example, an audience can choose to receive remote streams with low latency or ultra low latency. Levels affect prices.


codec: SDK_CODEC

The codec that the Web browser uses for encoding.

  • "vp8": Use VP8 for encoding.
  • "h264": Use H.264 for encoding.
  • "vp9": (Beta) Use VP9 for encoding.

Safari 12.1 or earlier does not support the VP8 codec.


mode: SDK_MODE

The channel profile.

The SDK differentiates channel profiles and applies different optimization algorithms accordingly. For example, it prioritizes smoothness and low latency for a video call, and prioritizes video quality for a video streaming.

The SDK supports the following channel profiles:

  • "live": Sets the channel profile as live streaming. You need to go on to call setClientRole to set the client as either a host or an audience. A host can send and receive audio or video, while an audience can only receive audio or video.
  • "rtc": Sets the channel profile as communication. It is used for a one-on-one call or a group call where all users in the channel can converse freely.

Optional role

The user role in a live interactive streaming (when mode is "live").

The user role determines the permissions that the SDK grants to a user, such as permission to publish local streams, subscribe to remote streams, and push streams to a CDN address. You can set the user role as "host" or "audience". A host can publish and subscribe to tracks, while an audience member can only subscribe to tracks. The default role in a live streaming is "audience". Before publishing tracks, you must set the user role as "host".

After creating a client, you can call setClientRole to switch the user role.