Rails应用中的Opentok错误,“未定义OT”

时间:2018-12-25 21:04:06

标签: ruby-on-rails opentok

我在Rails应用程序的红宝石中遇到错误“未定义OT”错误:enter image description here

API密钥,session_id和令牌具有正确的值。

我在我的gemfile中包含了“ gem'opentox'”并运行了“ bundle install”。 不知道如何初始化OT。​​

Show.html.erb:

<script type="text/javascript">
  var apiKey = '<%= @api_key %>';
  var sessionId = '<%= @room.session_id %>';
  var token = '<%= @token %>';
</script>

<div id="videos">
  <div id="publisher"></div>
  <div id="subscribers"></div>
</div>

<script>
  // Handling all of our errors here by alerting them
  function handleError(error) {
    if (error) {
       alert(error.message);
       }
    }

    initializeSession();

    function initializeSession() {
      var session = OT.initSession(apiKey, sessionId);

      // Subscribe to a newly created stream
      session.on('streamCreated', function(event) {
      session.subscribe(event.stream, 'subscriber', {
        insertMode: 'append',
        width: '100%',
        height: '100%'
      }, handleError);
      });

     // Create a publisher
    var publisher = OT.initPublisher('publisher', {
      insertMode: 'append',
      width: '100%',
      height: '100%'
    }, handleError);

   // Connect to the session
   session.connect(token, function(error) {
   // If the connection is successful, publish to the session
   if (error) {
      handleError(error);
    } else {
    session.publish(publisher, handleError);
    }
    });
   }
  </script>

2 个答案:

答案 0 :(得分:0)

通过将opentok脚本标记添加到show.html.erb,我可以解决此问题:     <script src="https://static.opentok.com/v2/js/opentok.min.js"></script>

答案 1 :(得分:0)

OT是opentok的一个对象,用于初始化会话,销毁会话等。如果必须使用OT对象,则必须在application.html.erb中使用cdn,以便此OT对象可以在每个页面中使用。 您只需要将CDN放在application.html.erb

的头部标签中

<script src="https://static.opentok.com/v2/js/opentok.min.js"></script>