在 OpenTok 中使用动态 sessionId 和 token-Angular

Using dynamic sessionId and token in OpenTok-Angular

我想尝试 aullman 示例 OpenTok-Angular: https://github.com/aullman/OpenTok-Angular

但是,在第二步(替换 demo.html 文件中的 apiKey、sessionId 和令牌),我想用 OpenTok SDK Node.js 动态生成的 sessionId 和令牌替换(我已经完成 app.js)

我该怎么做?

PS:我的 app.js 在视图 apiKey、sessionId 和 Token 中呈现的文件:

// Dependencies
var express = require('express');
var server_port = process.env.PORT || 3000;
var newSession = require('./credentialsPromise').newSession(); //obtains the promise with sessionId and token generated dynamically

var app = express();


app.use(express.static(__dirname + '/public'));


//Init the app
init();


app.get('/', function(req, res){
  //Promise
  newSession.then(function(req){
    //fullfilled
    var obj = req;
    //Render in view
    res.render('index.ejs', {
      apiKey: obj.apiKey,
      sessionId: obj.sessionId,
      token: obj.tokenId
    });
  }, function(reject){ //rejected
    console.log("Error, cannot use promise");
  });
});

function init() {
  app.listen(server_port, function() {
    console.log('App is running in localhost:' + server_port);
  });
}

使用节点 js 创建一个 Rest API 并从您的 angular js 页面调用 api。从节点 js 获得成功响应后,在变量中获取该会话 ID 和令牌并传入您的 angular js 方法。

如何创建 Rest API。 http://www.tutorialspoint.com/nodejs/nodejs_restful_api.htm

我只需要将 demo.html 更改为 index.ejs 并将其存储在 views 文件夹中(显然是修改路径)。

然后,我通过 returns app.js 的值更改了我的 apiKey、sessionId 和令牌,如下所示:

  angular.module('demo', ['opentok'])
            .controller('MyCtrl', ['$scope', 'OTSession', 'apiKey', 'sessionId', 'token', function($scope, OTSession, apiKey, sessionId, token) {
                OTSession.init(apiKey, sessionId, token);
                $scope.streams = OTSession.streams;
            }]).value({
                apiKey: '<%= apiKey %>',
                sessionId: '<%= sessionId %>',
                token: '<%= token %>'
            });