rb-sdk
Version:
rb client sdk
113 lines (79 loc) • 3.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.detect = exports.SignalType = exports.rbEventDispatcher = exports.rbDebugger = exports.RBEvent = exports.Configuration = undefined;
exports.default = createRBClient;
var _ToCRBClient = require('./ToCRBClient');
var _ToCRBClient2 = _interopRequireDefault(_ToCRBClient);
var _SeatRBClient = require('./SeatRBClient');
var _SeatRBClient2 = _interopRequireDefault(_SeatRBClient);
var _Configuration = require('./Configuration');
var _Configuration2 = _interopRequireDefault(_Configuration);
var _SignalType = require('./SignalType');
var _SignalType2 = _interopRequireDefault(_SignalType);
var _RBDebugger = require('./RBDebugger');
var _RBDebugger2 = _interopRequireDefault(_RBDebugger);
var _EventDispatcher = require('./EventDispatcher');
var _EventDispatcher2 = _interopRequireDefault(_EventDispatcher);
var _RBEvent = require('./RBEvent');
var _RBEvent2 = _interopRequireDefault(_RBEvent);
var _Detector = require('./Detector');
var _Detector2 = _interopRequireDefault(_Detector);
var _uuidJs = require('uuid-js');
var _uuidJs2 = _interopRequireDefault(_uuidJs);
var _store = require('store');
var _store2 = _interopRequireDefault(_store);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function detectBrowser(failureCallback) {
var browser = _Detector2.default.browser;
var WEBRTC_CONSTANTS = ['RTCPeerConnection', 'webkitRTCPeerConnection', 'mozRTCPeerConnection', 'RTCIceGatherer'];
var isWebRTCSupported = WEBRTC_CONSTANTS.find(function (item) {
return item in window;
});
var isGetUserMediaSupported = navigator && (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.mediaDevices && navigator.mediaDevices.getUserMedia);
if (!isWebRTCSupported || !isGetUserMediaSupported) {
var message = 'The rb client unsupport this browser' + JSON.stringify(browser);
_RBDebugger2.default.error(message);
failureCallback && failureCallback(browser);
return false;
}
return true;
}
function createRBClient(config, failureCallback) {
generateUUID();
if (!(config instanceof _Configuration2.default)) {
var message = 'The config is not instance of Configuration';
_RBDebugger2.default.error(message);
throw new Error(message);
}
var clientType = config.clientType;
if (!clientType || 'CLIENT_SEAT' !== clientType && 'CLIENT_2C' !== clientType) {
var _message = 'The configuration clientType:[' + clientType + '] is not supported. please check configuration.';
_RBDebugger2.default.error(_message);
throw new Error(_message);
}
if (!detectBrowser(failureCallback)) {
return null;
}
return 'CLIENT_SEAT' === clientType ? new _SeatRBClient2.default(config) : new _ToCRBClient2.default(config);
}
function generateUUID() {
var mac = _store2.default.get('_rbdid');
if (mac) {
return;
}
var uuid4 = _uuidJs2.default.create();
mac = uuid4.toString();
mac = mac.replace(/-/g, '');
console.log("生成UUID=======" + mac);
_store2.default.set('_rbdid', mac);
}
window.rbEventDispatcher = window.rbEventDispatcher || _EventDispatcher2.default;
window.rbDebugger = window.rbDebugger || _RBDebugger2.default;
exports.Configuration = _Configuration2.default;
exports.RBEvent = _RBEvent2.default;
exports.rbDebugger = _RBDebugger2.default;
exports.rbEventDispatcher = _EventDispatcher2.default;
exports.SignalType = _SignalType2.default;
exports.detect = _Detector2.default;