[英]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.