Skip to content

Commit

Permalink
add rtcV2
Browse files Browse the repository at this point in the history
  • Loading branch information
GuGaobai1994 committed Dec 6, 2017
1 parent 10583d0 commit c6bf746
Show file tree
Hide file tree
Showing 7 changed files with 164 additions and 6 deletions.
4 changes: 2 additions & 2 deletions example/rtc.js
Expand Up @@ -7,8 +7,8 @@ var Pili = require('../index.js');

// ======================== Configurations =========================
// Replace with your keys here
var ACCESS_KEY = 'FMVCRs2-LO1ivNi4l7mEZE6ZDvPv-519D12kZCO';
var SECRET_KEY = 'InOXBls8alaPicFn002XsoXKFw1iFJZxcoOvAeY';
var ACCESS_KEY = 'FMVCRs2-LO1ivRNi4l7mEZE6ZDvPv-519D12kZCO';
var SECRET_KEY = 'InOXBls8alaPiRcFn002XsoXKFw1iFJZxcoOvAeY';

// Replace with your hub name
var HUB = 'qiniu-pili-test'; // The Hub must be exists before use
Expand Down
62 changes: 62 additions & 0 deletions example/rtcV2.js
@@ -0,0 +1,62 @@
/**
* Created by guhao on 2017/7/24.
*/
'use strict';

var Pili = require('../index.js');

// ======================== Configurations =========================
// Replace with your keys here
var ACCESS_KEY = 'FMVCRs2-LO1ivRNi4l7mEZE6ZDvPv-519D12kZCO';
var SECRET_KEY = 'InOXBls8alaPiRcFn002XsoXKFw1iFJZxcoOvAeY';

// Replace with your hub name
var HUB = 'qiniu-pili-test'; // The Hub must be exists before use


/**
* Instantiate a Pili rtc object
*/
var credentials = new Pili.Credentials(ACCESS_KEY, SECRET_KEY);
var rtc = new Pili.RTCV2(credentials);

var roomName = "room1";
var ownerID = 'ownerID';
rtc.createRoom(ownerID, roomName, {}, function(err, roomInfo) {
if (!err) {
console.log("success")
console.log(roomInfo)
} else {
console.log("oops")
console.log(err)
}
})

rtc.getRoom(roomName, function(err, roomInfo) {
if (!err) {
console.log("success")
console.log(roomInfo)
} else {
console.log("oops")
console.log(err)
}
})

rtc.deleteRoom(roomName, function(err) {
if (!err) {
console.log("success")
console.log("delete OK")
} else {
console.log("oops")
console.log(err)
}
})


var roomToken = rtc.roomToken({
"version": "2.0",
"room_name": roomName,
"user_id": ownerID,
"perm": "user"
})
console.log(roomToken);
50 changes: 50 additions & 0 deletions lib/api.js
Expand Up @@ -20,6 +20,12 @@ exports.init = function() {
apiVersion: "v1"
});
}
if(!API.requestRTCV2) {
API.requestRTCV2 = new Request({
host: config.const.DEFAULT_RTC_HOST,
apiVersion: "v2"
});
}
}

// client APIs
Expand Down Expand Up @@ -263,4 +269,48 @@ exports.deleteRoomMember = function(credentials, roomName, userId,fn) {
console.log(path);

API.requestRTC.delete(credentials, path, fn);
}

//RTCV2---------------------------------------------
exports.createRtcRoomV2 = function(credentials, ownerID, roomName, options, fn) {

var path = fmt.format('/rooms');
var data = {
"owner_id": ownerID,
"room_name": roomName
}

if (options.userMax) {
data["user_max"] = options.userMax;
}

API.requestRTCV2.post(credentials, path, data, fn);
}

exports.getRtcRoomV2 = function(credentials, roomName, fn) {

var path = fmt.format('/rooms/%s', roomName);

API.requestRTCV2.get(credentials, path, {}, fn);
}

exports.deleteRtcRoomV2 = function(credentials, roomName, fn) {

var path = fmt.format('/rooms/%s', roomName);

API.requestRTCV2.delete(credentials, path, fn);
}

exports.getRoomMemberV2 = function(credentials, roomName, fn) {
var path = fmt.format('/rooms/%s/users', roomName);

API.requestRTCV2.get(credentials, path,{}, fn);
}

exports.deleteRoomMemberV2 = function(credentials, roomName, userId,fn) {

var path = fmt.format('/rooms/%s/users/%s', roomName, userId);
console.log(path);

API.requestRTCV2.delete(credentials, path, fn);
}
3 changes: 2 additions & 1 deletion lib/index.js
Expand Up @@ -7,4 +7,5 @@ exports.rtmpPlayURL = require('./api').rtmpPlayURL;
exports.hdlPlayURL = require('./api').hdlPlayURL;
exports.hlsPlayURL = require('./api').hlsPlayURL;
exports.snapshotPlayURL = require('./api').snapshotPlayURL;
exports.RTC = require('./rtc.js');
exports.RTC = require('./rtc.js');
exports.RTCV2 = require('./rtcV2.js');
2 changes: 1 addition & 1 deletion lib/request.js
Expand Up @@ -60,7 +60,7 @@ Request.prototype.get = function(credentials, path, data, fn) {
if (res.statusCode >= 400) {
var err = new Error(resultObject['message']);
err.errorCode = resultObject['error'];
err.httpCode = (resultObject['error'] / 1000).toFixed(0);
err.httpCode = res.statusCode;

fn(err, null);
} else {
Expand Down
2 changes: 0 additions & 2 deletions lib/rtc.js
@@ -1,8 +1,6 @@
'use strict';

const Credentials = require('./credentials')
const API = require('./api');
const util = require('./util');

function RTC(credentials) {
this.credentials = credentials;
Expand Down
47 changes: 47 additions & 0 deletions lib/rtcV2.js
@@ -0,0 +1,47 @@
'use strict';

const API = require('./api');

function RTCV2(credentials) {
this.credentials = credentials;

API.init();
}

RTCV2.prototype.createRoom = function(ownerID, roomName, options, fn) {

return API.createRtcRoomV2(this.credentials, ownerID, roomName, options, fn);
}

RTCV2.prototype.getRoom = function(roomName, fn) {

return API.getRtcRoomV2(this.credentials, roomName, fn);
}

RTCV2.prototype.deleteRoom = function(roomName, fn) {

return API.deleteRtcRoomV2(this.credentials, roomName, fn);
}

RTCV2.prototype.roomToken = function(roomAccess) {

/*
roomAccess = {
"version": "2.0"
"room_name": "<RoomName>",
"user_id": "<UserID>",
"perm": "<Permission>",
"expire_at": <ExpireAt>
}
*/

if (!roomAccess.expire_at) {
roomAccess.expire_at = Math.floor(Date.now() / 1000) + 1800;
}

return this.credentials.signJson(roomAccess);
}



module.exports = exports = RTCV2;

0 comments on commit c6bf746

Please sign in to comment.