簡體   English   中英

OpenTok 會話連接問題(Javascript/Rails 應用程序)

[英]OpenTok Session Connection Issue (Javascript/Rails Application)

這是我想在連接 2 個用戶的情況下創建的基本視頻聊天。 在對 opentok 教程進行了一些研究之后,我能夠在沒有服務器 SDK 的情況下創建 2 路聊天。

但是當我創建 rails 服務器端應用程序時,我無法進行 2 路聊天,而是該鏈接僅創建單個會話並且不接受任何其他用戶。

我已經在 Gemfile 中包含了 gem opentok。

問題:即使在另一個選項卡中存在現有屏幕之后,也僅出現單個視頻 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> 

我嘗試了一些其他變體,添加事件處理程序等,但沒有任何效果對我有用。 任何幫助表示贊賞。 如果可能,請提供示例代碼。

問題是您正在為每個頁面加載創建一個新會話。 這意味着每個訪問者都會獲得不同的會話 ID,因此兩者將永遠無法相互訂閱。

相反,您需要一種方法來存儲生成的會話 ID(例如數據庫)。 然后考慮如何將訪問者置於同一會話中,例如使用唯一“房間”的 URL。 當您的頁面加載應該提供先前生成的會話 ID 時,請從數據庫中讀取該值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM