/*global require, __dirname, console*/
var express = require('express'),
bodyParser = require('body-parser'),
errorhandler = require('errorhandler'),
morgan = require('morgan'),
net = require('net'),
N = require('./nuve'),
fs = require("fs"),
https = require("https"),
config = require('./../../licode_config');
var options = {
key: fs.readFileSync('../../cert/key.pem').toString(),
cert: fs.readFileSync('../../cert/cert.pem').toString()
};
var app = express();
// app.configure ya no existe
"use strict";
app.use(errorhandler({
dumpExceptions: true,
showStack: true
}));
app.use(morgan('dev'));
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
//app.set('views', __dirname + '/../views/');
//disable layout
//app.set("view options", {layout: false});
N.API.init(config.nuve.superserviceID, config.nuve.superserviceKey, 'http://localhost:3000/');
var myRoom;
//查找basicExampleRoom是否存在,不存在则创建。
N.API.getRooms(function(roomlist) {
"use strict";
var rooms = JSON.parse(roomlist);
console.log(rooms.length); //check and see if one of these rooms is 'basicExampleRoom'
for (var room in rooms) {
if (rooms[room].name === 'basicExampleRoom'){
myRoom = rooms[room]._id;
}
}
if (!myRoom) {
N.API.createRoom('basicExampleRoom', function(roomID) {
myRoom = roomID._id;
console.log('Created room ', myRoom);
});
} else {
console.log('Using room', myRoom);
}
});
app.get('/getRooms/', function(req, res) {
"use strict";
N.API.getRooms(function(rooms) {
res.send(rooms);
});
});
//https://xx.x.x.xx:3004/getUsers/57b7b8ebc9ffd2606acb29e8
app.get('/getUsers/:room', function(req, res) {
"use strict";
var room = req.params.room; //房间id
N.API.getUsers(room, function(users) {
res.send(users);
});
});
app.post('/createToken/', function(req, res) {
"use strict";
var room = myRoom,
username = req.body.username,
role = req.body.role;
N.API.createToken(room, username, role, function(token) { //根据房间id创建token,返回给client
console.log(token);
res.send(token);
}, function(error) {
console.log(error);
res.status(401).send('No Erizo Controller found');
});
});
app.use(function(req, res, next) {
"use strict";
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'POST, GET, OPTIONS, DELETE');
res.header('Access-Control-Allow-Headers', 'origin, content-type');
if (req.method == 'OPTIONS') {
res.send(200);
} else {
next();
}
});
app.listen(3001); //http
var server = https.createServer(options, app);
server.listen(3004); //https
旧版本licode_basicExample简易分析
最新推荐文章于 2020-05-23 01:44:47 发布