OpenTok:会话和令牌之间有什么区别?

时间:2011-03-20 09:41:59

标签: javascript php api opentok tokbox

我正在尝试使用OpenTok API进行2人视频聊天,但我不知道如何生成sessionIdtoken以及有什么区别他们之间。

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

2 个答案:

答案 0 :(得分:7)

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

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

此外,当您生成令牌时,您可以使用角色为其添加一个角色,该角色告诉OpenTok基础架构允许哪些类型的操作。例如,您可以通过使用具有主持人角色的令牌启动该连接来决定授予特定连接审核权限。

答案 1 :(得分:2)

以下是如何生成session IDtoken的一个非常基本的示例:

<?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>