Vivox 开发者门户用户的令牌

如果您是来自 Vivox 开发者门户的开发者,并且打算继续使用提供的凭据,则在初始化 Vivox SDK 之前需要执行一些步骤。

以下代码示例是相关设置的示例:

public class VoiceManager : MonoBehaviour
{
    async void Start()
    {
        // Must be done before any other Vivox action otherwise tokens will not be generated for them properly.
        VivoxService.Instance.SetTokenProvider(new VivoxTokenProvider());
        InitializationOptions options = new InitializationOptions().SetVivoxCredentials(server, domain, issuer);
        await UnityServices.InitializeAsync(options);
        await VivoxService.Instance.InitializeAsync();
    }
}

class VivoxTokenProvider : IVivoxTokenProvider
{
    public Task<string> GetTokenAsync(string issuer = null, TimeSpan? expiration = null, string targetUserUri = null, string action = null, string channelUri = null, string fromUserUri = null, string realm = null)
    {
        // Implement token fetching logic here.
        // The method parameters contain the necessary information for crafting the request payload.
        // This will be called any time we need a token for a Vivox action!
    }
}

注意:如果您没有设置服务器端令牌供应,您可以通过将 Vivox 密钥放入 InitializationOptions().SetVivoxCredentials() 调用中,在本地生成令牌以供测试。

在开发之外,不应使用本地令牌生成功能,因为它需要在客户端上缓存密钥。

生成本地令牌时,无需创建 IVivoxTokenProvider 的实现并将其注册到 VivoxService。

以下代码是不含 IVivoxTokenProvider 的设置示例:

public class VoiceManager : MonoBehaviour
{
    async void Start()
    {
        InitializationOptions options = new InitializationOptions().SetVivoxCredentials(server, domain, issuer, secretKey);
        await UnityServices.InitializeAsync(options);
        await VivoxService.Instance.InitializeAsync();
    }
}