【问题标题】:OpenTok Session Connection Issue (Javascript/Rails Application)OpenTok 会话连接问题(Javascript/Rails 应用程序)
【发布时间】:2015-10-13 00:31:46
【问题描述】:

这是我想创建的一个基本视频聊天,连接了 2 个用户。 在对 opentok 教程做了一些研究之后,我能够在没有服务器 SDK 的情况下创建 2 路聊天。

但是当我创建 rails 服务器端应用程序时,我无法进行双向聊天,而是链接仅创建单个会话并且不接受任何其他用户。

我已将 gem opentok 包含在 Gemfile 中。

问题: 即使在另一个选项卡中存在现有屏幕之后,也只会出现 Single Video Div。即,我打开链接,我得到一个视频屏幕,当我在另一个选项卡中打开相同的链接时,我得到一个视频屏幕而不是两个。 (会话连接的一些问题)。

来自控制器的代码:

class AuthController < ApplicationController

require "opentok"


def index
  config_opentok

  session = @opentok.create_session
  @id = session.session_id
  @token = session.generate_token

end

private

  def config_opentok
    if @opentok.nil?

      @opentok = OpenTok::OpenTok.new API_KEY, 'SECRET'

    end
  end

end

我在上面输入了正确的 Api_key 和 Secret,正如 Opentok 仪表板中给出的那样。

视图代码:

<div id='myPublisherDiv'></div> 
<div id='subscribersDiv'></div> 

<script src='//static.opentok.com/v2/js/opentok.min.js'></script> 
<script> 


  var apiKey = API_KEY; // used correct Api_key in APP
  var sessionId = '<%= @id %>'; 
  var token = '<%= @token %>';
  var session = OT.initSession(apiKey, sessionId); 
  session.on({ 
      streamCreated: function(event) { 
        session.subscribe(event.stream, 'subscribersDiv', {insertMode: 'append'}); 
      } 
  }); 
  session.connect(token, function(error) {
    if (error) {
      console.log(error.message);
    } else {
      session.publish('myPublisherDiv', {width: 320, height: 240}); 
    }
  });
</script> 

我尝试了其他一些变体,添加事件处理程序等,但对我没有任何帮助。 任何帮助表示赞赏。如果可能,请提供示例代码。

【问题讨论】:

    标签: javascript ruby-on-rails session dom-events opentok


    【解决方案1】:

    问题是您正在为每个页面加载创建一个新会话。这意味着每个访问者都会获得不同的会话 ID,因此两者将永远无法相互订阅。

    相反,您需要一种方法来存储生成的会话 ID(例如数据库)。然后,您考虑如何将访问者置于同一会话中,例如使用唯一“房间”的 URL。当您的页面加载应提供先前生成的会话 ID 时,请从数据库中读取该值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-31
      • 2017-12-18
      • 2023-03-19
      • 2016-10-31
      • 2013-06-15
      • 1970-01-01
      相关资源
      最近更新 更多