_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
IStreamVideoClientinstanceConnect 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.eyJpc3MiOiJodHRwczovL3Byb250by5nZXRzdHJlYW0uaW8iLCJzdWIiOiJ1c2VyL0FsaXZlX0NyYWIiLCJ1c2VyX2lkIjoiQWxpdmVfQ3JhYiIsInZhbGlkaXR5X2luX3NlY29uZHMiOjYwNDgwMCwiaWF0IjoxNzYyODk5NTQwLCJleHAiOjE3NjM1MDQzNDB9.Ea6t2zIt7tkdMAQtjgnD144NH3_04NigL-_POgnASWA |
| User ID | Alive_Crab |
| Call ID | eOPgt5EVwMxDBoMG4b7gG |
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);