我在Rails应用程序的红宝石中遇到错误“未定义OT”错误:
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>
答案 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>