_client = StreamVideoClient.CreateDefaultClient();
Client & Authentication
Before joining a call, it is necessary to set up the video client. Here’s a basic example:
Create the
IStreamVideoClient
instanceConnect user to the Stream API
var authCredentials = new AuthCredentials("api-key", "user-id", "user-token"); await _client.ConnectUserAsync(authCredentials);
- The API Key can be found in your Stream dashboard.
- The User can be either authenticated, anonymous or guest.
- Note: You can store custom data on the user object, if required.
Here’s a complete example of a MonoBehaviour that initiates the client and connects to the Stream API:
using System;
using StreamVideo.Core;
using StreamVideo.Libs.Auth;
using UnityEngine;
public class VideoClient : MonoBehaviour
{
async void Start()
{
_client = StreamVideoClient.CreateDefaultClient();
try
{
var authCredentials = new AuthCredentials("api-key", "user-id", "user-token");
await _client.ConnectUserAsync(authCredentials);
// After we awaited the ConnectUserAsync the client is connected
}
catch (Exception e)
{
Debug.LogError(e.Message);
}
}
private IStreamVideoClient _client;
}
Generating a token
Tokens provide a way to authenticate a user or give access to a specific set of calls. They’re similar to passwords but offer more flexibility, allowing you to set the expiry date. For security reasons, tokens need to be generated server-side. Typically, you integrate this into the part of your codebase where you login or register users. You can use our server-side SDKs to easily add support for this. For detailed instruction, refer to our server-side docs on installation and creating-users-and-user-tokens.
Here’s a valid user and token to help you get started on the client side before integrating with your backend API:
Here are credentials to try out the app with:
Property | Value |
---|---|
API Key | mmhfdzb5evj2 |
Token | eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJodHRwczovL3Byb250by5nZXRzdHJlYW0uaW8iLCJzdWIiOiJ1c2VyL0pvcnV1c19DX0Jhb3RoIiwidXNlcl9pZCI6IkpvcnV1c19DX0Jhb3RoIiwidmFsaWRpdHlfaW5fc2Vjb25kcyI6NjA0ODAwLCJpYXQiOjE3MzUwNTgyMTksImV4cCI6MTczNTY2MzAxOX0.wMAMK1do7u0vykpPocisv9Cv7oCgxj9VhkgTKn4u9iI |
User ID | Joruus_C_Baoth |
Call ID | HQzgIIoVM07S |
Client options
Here’s an example showing how you can pass configuration options through the StreamClientConfig
instance passed to the CreateDefaultClient
method:
var config = new StreamClientConfig
{
// Enabling Debug level logging can be helpful during development
LogLevel = StreamLogLevel.Debug,
Audio =
{
// Increase audio quality in exchange for higher bandwidth
EnableRed = false,
// DTX encodes silence at lower bitrate. This can save bandwidth
EnableDtx = false
}
};
_client = StreamVideoClient.CreateDefaultClient(config);