3

我正在尝试使用OpenTok API进行 2 人视频聊天,但我不知道如何生成 asessionId或 atoken以及它们之间的区别。

我查看了提供的示例,但它们没有显示如何生成它们。因此,如果有人可以提供解释的示例,我将不胜感激。

4

2 回答 2

7

SessionID 标识您要连接的视频聊天。许多人可以将视频流连接并发布到同一个会话。根据您的浏览器在该会话中订阅的视频流,您可以在会话中看到和听到其他人。因为您的应用程序控制谁可以发布和谁订阅谁,您可以在会话中创建各种视频聊天拓扑(例如 1:1、视频会议、脱口秀、安全摄像头等)。

令牌是一种安全/身份验证机制。当您启动与给定会话的连接时,您必须提供使用创建会话的相同凭据生成的令牌。如果其他站点设法获得您的 sessionId,则令牌可防止其他站点“崩溃”您创建的会话。

此外,当你生成一个令牌时,你可以赋予它一个角色,它告诉 OpenTok 基础设施允许哪些类型的操作。例如,您可以决定授予特定连接审核权限,方法是使用具有主持人角色的令牌启动该连接。

于 2011-03-21T03:18:30.607 回答
2

这是一个非常基本的示例,说明如何生成session IDand token

<?php
    require_once 'SDK/API_Config.php';
    require_once 'SDK/OpenTokSDK.php';

    $apiObj = new OpenTokSDK(API_Config::API_KEY, API_Config::API_SECRET);

    $session = $apiObj->create_session($_SERVER["REMOTE_ADDR"]);

    $sessionId = $session->getSessionId();
    $token = $apiObj->generate_token($sessionId, "moderator");
?>

然后,您可以将这些值放入JS代码中,如下所示:

<script type="text/javascript">
    var apiKey = <?php echo API_Config::API_KEY; ?> ;
    var sessionId = "<?php echo $sessionId; ?>";
    var token = "<?php echo $token; ?>";

    var session;
    var publisher;
    var subscribers = {};

    session = TB.initSession(sessionId);

    //Video chat event listeners
    session.addEventListener('sessionConnected', sessionConnectedHandler);
    session.addEventListener('streamCreated', streamCreatedHandler);

    session.connect(apiKey, token);
</script>
于 2011-03-20T21:55:42.440 回答