OpenTok: В чем разница между сеансом и токеном?

Я пытаюсь создать видеочат для двух человек, используя OpenTok API, но понятия не имею о том, как создать sessionId или token и в чем разница между ними.

Я просмотрел предоставленные примеры, но они не показывают, как их генерировать. Поэтому я был бы признателен, если бы кто-нибудь мог привести пример с пояснениями.


person CodeOverload    schedule 20.03.2011    source источник


Ответы (2)


SessionID идентифицируют видеочат, к которому вы хотите подключиться. Многие люди могут подключаться и публиковать видеопотоки в одном и том же сеансе. Вы видите и слышите других людей в сеансе в зависимости от того, на какие видеопотоки подписан ваш браузер в этом сеансе. Поскольку ваше приложение контролирует, кто может публиковать сообщения и кто на кого подписывается, вы можете создавать самые разные топологии видеочата в своем сеансе (например, 1:1, видеоконференция, ток-шоу, камера видеонаблюдения и т. д.).

Токены — это механизм безопасности/аутентификации. Когда вы инициируете подключение к данному сеансу, вы должны предоставить токен, созданный с использованием тех же учетных данных, которые создали сеанс. Токены не позволяют другим сайтам «сбой вечеринки» созданного вами сеанса, если им удастся заполучить ваш идентификатор сеанса.

Кроме того, когда вы создаете токен, вы можете наполнить его ролью, которая сообщает инфраструктуре OpenTok, какие типы действий разрешать. Например, вы можете решить предоставить определенные права модерации соединения, инициировав это соединение с токеном, который имеет роль модератора.

person Ian Small    schedule 21.03.2011

Вот очень простой пример того, как сгенерировать session ID и 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>
person monvural    schedule 20.03.2011