@techsee/techsee-media-service 999.0.2-switch → 999.0.3-alpha2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/LocalStreamManager.d.ts +12 -0
- package/lib/LocalStreamManager.d.ts.map +1 -1
- package/lib/LocalStreamManager.js +440 -283
- package/lib/LocalStreamManager.js.map +1 -1
- package/lib/MediaConstants.d.ts +14 -4
- package/lib/MediaConstants.d.ts.map +1 -1
- package/lib/MediaConstants.js +83 -38
- package/lib/MediaConstants.js.map +1 -1
- package/lib/MediaContracts.d.ts +17 -14
- package/lib/MediaContracts.d.ts.map +1 -1
- package/lib/MediaContracts.js +3 -3
- package/lib/MediaContracts.js.map +1 -1
- package/lib/MediaPublisher.d.ts +3 -3
- package/lib/MediaPublisher.d.ts.map +1 -1
- package/lib/MediaPublisher.js +46 -35
- package/lib/MediaPublisher.js.map +1 -1
- package/lib/MediaServiceBase.d.ts +21 -7
- package/lib/MediaServiceBase.d.ts.map +1 -1
- package/lib/MediaServiceBase.js +924 -586
- package/lib/MediaServiceBase.js.map +1 -1
- package/lib/MediaSession/MediaServer.d.ts +45 -0
- package/lib/MediaSession/MediaServer.d.ts.map +1 -0
- package/lib/MediaSession/MediaServer.js +538 -0
- package/lib/MediaSession/MediaServer.js.map +1 -0
- package/lib/MediaSession/MediaSessionBase.d.ts +10 -1
- package/lib/MediaSession/MediaSessionBase.d.ts.map +1 -1
- package/lib/MediaSession/MediaSessionBase.js +128 -66
- package/lib/MediaSession/MediaSessionBase.js.map +1 -1
- package/lib/MediaSession/SessionOpentok.d.ts +11 -9
- package/lib/MediaSession/SessionOpentok.d.ts.map +1 -1
- package/lib/MediaSession/SessionOpentok.js +500 -352
- package/lib/MediaSession/SessionOpentok.js.map +1 -1
- package/lib/MediaSession/SessionTurn.d.ts +4 -1
- package/lib/MediaSession/SessionTurn.d.ts.map +1 -1
- package/lib/MediaSession/SessionTurn.js +611 -422
- package/lib/MediaSession/SessionTurn.js.map +1 -1
- package/lib/MediaSession/TurnConstants.js +31 -30
- package/lib/MediaSession/TurnConstants.js.map +1 -1
- package/lib/MediaSubscriber.d.ts +11 -11
- package/lib/MediaSubscriber.d.ts.map +1 -1
- package/lib/MediaSubscriber.js +236 -192
- package/lib/MediaSubscriber.js.map +1 -1
- package/lib/MediaUtils/Compatibility.d.ts +2 -1
- package/lib/MediaUtils/Compatibility.d.ts.map +1 -1
- package/lib/MediaUtils/Compatibility.js +130 -85
- package/lib/MediaUtils/Compatibility.js.map +1 -1
- package/lib/MediaUtils/MediaDomUtils.d.ts +3 -2
- package/lib/MediaUtils/MediaDomUtils.d.ts.map +1 -1
- package/lib/MediaUtils/MediaDomUtils.js +235 -174
- package/lib/MediaUtils/MediaDomUtils.js.map +1 -1
- package/lib/MediaUtils/MediaTracer.js +9 -4
- package/lib/MediaUtils/MediaTracer.js.map +1 -1
- package/lib/MediaUtils/index.d.ts +1 -0
- package/lib/MediaUtils/index.d.ts.map +1 -0
- package/lib/MediaUtils/index.js +16 -0
- package/lib/MediaUtils/index.js.map +1 -0
- package/lib/MultiParty/Contracts.d.ts +16 -0
- package/lib/MultiParty/Contracts.d.ts.map +1 -0
- package/lib/MultiParty/Contracts.js +6 -0
- package/lib/MultiParty/Contracts.js.map +1 -0
- package/lib/MultiParty/DetectWebRtcService.d.ts +16 -0
- package/lib/MultiParty/DetectWebRtcService.d.ts.map +1 -0
- package/lib/MultiParty/DetectWebRtcService.js +79 -0
- package/lib/MultiParty/DetectWebRtcService.js.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesService.d.ts +23 -0
- package/lib/MultiParty/MediaCapabilitiesService.d.ts.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesService.js +369 -0
- package/lib/MultiParty/MediaCapabilitiesService.js.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.d.ts +5 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.d.ts.map +1 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.js +305 -0
- package/lib/MultiParty/MediaCapabilitiesUtils.js.map +1 -0
- package/lib/MultiParty/MultiPartyService.d.ts +40 -0
- package/lib/MultiParty/MultiPartyService.d.ts.map +1 -0
- package/lib/MultiParty/MultiPartyService.js +70 -0
- package/lib/MultiParty/MultiPartyService.js.map +1 -0
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts +3 -0
- package/lib/MultiParty/MultiPartyServiceFactory.d.ts.map +1 -0
- package/lib/MultiParty/MultiPartyServiceFactory.js +21 -0
- package/lib/MultiParty/MultiPartyServiceFactory.js.map +1 -0
- package/lib/MultiParty/OpentokMultiPartyService.d.ts +29 -0
- package/lib/MultiParty/OpentokMultiPartyService.d.ts.map +1 -0
- package/lib/MultiParty/OpentokMultiPartyService.js +888 -0
- package/lib/MultiParty/OpentokMultiPartyService.js.map +1 -0
- package/lib/MultiParty/VideoLayoutType.d.ts +4 -0
- package/lib/MultiParty/VideoLayoutType.d.ts.map +1 -0
- package/lib/MultiParty/VideoLayoutType.js +13 -0
- package/lib/MultiParty/VideoLayoutType.js.map +1 -0
- package/lib/MultiParty/index.d.ts +4 -0
- package/lib/MultiParty/index.d.ts.map +1 -0
- package/lib/MultiParty/index.js +61 -0
- package/lib/MultiParty/index.js.map +1 -0
- package/lib/MultiParty/opentok.d.ts +503 -0
- package/lib/TechseeMediaStream.d.ts +6 -6
- package/lib/TechseeMediaStream.d.ts.map +1 -1
- package/lib/TechseeMediaStream.js +59 -53
- package/lib/TechseeMediaStream.js.map +1 -1
- package/lib/oldCode/constants.js +20 -15
- package/lib/oldCode/constants.js.map +1 -1
- package/lib/oldCode/event-emitter.js +45 -22
- package/lib/oldCode/event-emitter.js.map +1 -1
- package/lib/oldCode/index.js +48 -52
- package/lib/oldCode/index.js.map +1 -1
- package/lib/oldCode/opentok/session.js +261 -236
- package/lib/oldCode/opentok/session.js.map +1 -1
- package/lib/oldCode/opentok/stream.js +283 -269
- package/lib/oldCode/opentok/stream.js.map +1 -1
- package/lib/oldCode/publisher.js +96 -71
- package/lib/oldCode/publisher.js.map +1 -1
- package/lib/oldCode/service.js +294 -272
- package/lib/oldCode/service.js.map +1 -1
- package/lib/oldCode/session.js +82 -60
- package/lib/oldCode/session.js.map +1 -1
- package/lib/oldCode/stream.js +153 -125
- package/lib/oldCode/stream.js.map +1 -1
- package/lib/oldCode/subscriber.js +60 -35
- package/lib/oldCode/subscriber.js.map +1 -1
- package/lib/oldCode/tracer.d.ts +3 -2
- package/lib/oldCode/tracer.d.ts.map +1 -1
- package/lib/oldCode/tracer.js +181 -130
- package/lib/oldCode/tracer.js.map +1 -1
- package/lib/oldCode/utils/ImageFixer.js +67 -44
- package/lib/oldCode/utils/ImageFixer.js.map +1 -1
- package/lib/oldCode/webrtc/constants.js +102 -110
- package/lib/oldCode/webrtc/constants.js.map +1 -1
- package/lib/oldCode/webrtc/helper.js +176 -124
- package/lib/oldCode/webrtc/helper.js.map +1 -1
- package/lib/oldCode/webrtc/session-kms.js +408 -393
- package/lib/oldCode/webrtc/session-kms.js.map +1 -1
- package/lib/oldCode/webrtc/session-loopback.js +245 -227
- package/lib/oldCode/webrtc/session-loopback.js.map +1 -1
- package/lib/oldCode/webrtc/session-turn.js +705 -658
- package/lib/oldCode/webrtc/session-turn.js.map +1 -1
- package/lib/oldCode/webrtc/session-turn.v2.js +480 -471
- package/lib/oldCode/webrtc/session-turn.v2.js.map +1 -1
- package/lib/oldCode/webrtc/session.js +12 -6
- package/lib/oldCode/webrtc/session.js.map +1 -1
- package/lib/oldCode/webrtc/stream.js +526 -504
- package/lib/oldCode/webrtc/stream.js.map +1 -1
- package/lib/oldCode/webrtc/temasys/adapter-loader.js +5 -6
- package/lib/oldCode/webrtc/temasys/adapter-loader.js.map +1 -1
- package/lib/oldCode/webrtc/temasys/adapter.js +5264 -5192
- package/lib/oldCode/webrtc/temasys/adapter.js.map +1 -1
- package/lib/oldCode/webrtc/webrtc-ie-shim.js +3357 -2927
- package/lib/oldCode/webrtc/webrtc-ie-shim.js.map +1 -1
- package/lib/qos/raw-qos.js +348 -273
- package/lib/qos/raw-qos.js.map +1 -1
- package/lib/webrtc-ie-shim.js +3386 -2985
- package/lib/webrtc-ie-shim.js.map +1 -1
- package/package.json +54 -42
|
@@ -1,310 +1,335 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
exports.TsOpenTokSession = undefined;
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.TsOpenTokSession = void 0;
|
|
7
9
|
|
|
8
|
-
var _session = require(
|
|
10
|
+
var _session = require("../session");
|
|
9
11
|
|
|
10
|
-
var _publisher = require(
|
|
12
|
+
var _publisher = require("../publisher");
|
|
11
13
|
|
|
12
|
-
var _subscriber = require(
|
|
14
|
+
var _subscriber = require("../subscriber");
|
|
13
15
|
|
|
14
|
-
var _stream = require(
|
|
16
|
+
var _stream = require("./stream");
|
|
15
17
|
|
|
16
18
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
17
19
|
|
|
18
|
-
function
|
|
20
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
19
21
|
|
|
20
|
-
function
|
|
22
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
|
|
21
23
|
|
|
22
|
-
|
|
23
|
-
_inherits(TsOpenTokSession, _TsMediaSession);
|
|
24
|
+
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
|
|
24
25
|
|
|
25
|
-
|
|
26
|
-
var credentials = _ref.credentials;
|
|
26
|
+
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
27
27
|
|
|
28
|
-
|
|
28
|
+
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
_this._session = OT.initSession(credentials.apiKey, credentials.sessionId);
|
|
34
|
-
return _this;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
TsOpenTokSession.prototype._disconnectIfAlreadyConnected = function _disconnectIfAlreadyConnected() {
|
|
38
|
-
if (!this._session.isConnected()) {
|
|
39
|
-
return Promise.resolve();
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
return this.disconnect(true);
|
|
43
|
-
};
|
|
32
|
+
function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
|
|
44
33
|
|
|
45
|
-
|
|
46
|
-
var _this2 = this;
|
|
34
|
+
function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
|
|
47
35
|
|
|
48
|
-
|
|
49
|
-
return new Promise(function (resolve, reject) {
|
|
50
|
-
_this2._session.on('sessionConnected', function () {
|
|
51
|
-
_this2.emit(_session.EVENTS.CONNECTED);
|
|
52
|
-
});
|
|
53
|
-
_this2._session.on('sessionDisconnected', function (e) {
|
|
54
|
-
_this2.emit(_session.EVENTS.DISCONNECTED, e);
|
|
55
|
-
});
|
|
36
|
+
function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
|
|
56
37
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
});
|
|
38
|
+
var TsOpenTokSession = /*#__PURE__*/function (_TsMediaSession) {
|
|
39
|
+
_inherits(TsOpenTokSession, _TsMediaSession);
|
|
60
40
|
|
|
61
|
-
|
|
62
|
-
_this2._streams.delete(e.stream.id);
|
|
41
|
+
var _super = _createSuper(TsOpenTokSession);
|
|
63
42
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
_this2._session.on('streamPropertyChanged', function (e) {
|
|
67
|
-
if (e.changedProperty === 'videoDimensions') {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
43
|
+
function TsOpenTokSession(_ref) {
|
|
44
|
+
var _this;
|
|
70
45
|
|
|
71
|
-
|
|
46
|
+
var credentials = _ref.credentials;
|
|
72
47
|
|
|
73
|
-
|
|
74
|
-
stream: stream,
|
|
75
|
-
property: e.changedProperty,
|
|
76
|
-
value: e.newValue
|
|
77
|
-
};
|
|
48
|
+
_classCallCheck(this, TsOpenTokSession);
|
|
78
49
|
|
|
79
|
-
|
|
80
|
-
|
|
50
|
+
_this = _super.call(this);
|
|
51
|
+
_this._credentials = credentials;
|
|
52
|
+
_this._session = OT.initSession(credentials.apiKey, credentials.sessionId);
|
|
53
|
+
return _this;
|
|
54
|
+
}
|
|
81
55
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
56
|
+
_createClass(TsOpenTokSession, [{
|
|
57
|
+
key: "id",
|
|
58
|
+
get: function get() {
|
|
59
|
+
return this._session && this._session.sessionId;
|
|
60
|
+
}
|
|
61
|
+
}, {
|
|
62
|
+
key: "_disconnectIfAlreadyConnected",
|
|
63
|
+
value: function _disconnectIfAlreadyConnected() {
|
|
64
|
+
if (!this._session.isConnected()) {
|
|
65
|
+
return Promise.resolve();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
return this.disconnect(true);
|
|
69
|
+
}
|
|
70
|
+
}, {
|
|
71
|
+
key: "connect",
|
|
72
|
+
value: function connect() {
|
|
73
|
+
var _this2 = this;
|
|
94
74
|
|
|
95
|
-
|
|
96
|
-
|
|
75
|
+
return this._disconnectIfAlreadyConnected().then(function () {
|
|
76
|
+
return new Promise(function (resolve, reject) {
|
|
77
|
+
_this2._session.on('sessionConnected', function () {
|
|
78
|
+
_this2.emit(_session.EVENTS.CONNECTED);
|
|
79
|
+
});
|
|
97
80
|
|
|
98
|
-
|
|
99
|
-
|
|
81
|
+
_this2._session.on('sessionDisconnected', function (e) {
|
|
82
|
+
_this2.emit(_session.EVENTS.DISCONNECTED, e);
|
|
83
|
+
});
|
|
100
84
|
|
|
101
|
-
|
|
85
|
+
_this2._session.on('streamCreated', function (e) {
|
|
86
|
+
_this2.emit(_session.EVENTS.STREAM_CREATED, new _stream.TsOpenTokStream(_this2, e.stream));
|
|
87
|
+
});
|
|
102
88
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
return;
|
|
106
|
-
}
|
|
89
|
+
_this2._session.on('streamDestroyed', function (e) {
|
|
90
|
+
_this2._streams["delete"](e.stream.id);
|
|
107
91
|
|
|
108
|
-
|
|
92
|
+
_this2.emit(_session.EVENTS.STREAM_DESTROYED, e);
|
|
93
|
+
});
|
|
109
94
|
|
|
110
|
-
|
|
111
|
-
|
|
95
|
+
_this2._session.on('streamPropertyChanged', function (e) {
|
|
96
|
+
if (e.changedProperty === 'videoDimensions') {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
112
99
|
|
|
113
|
-
|
|
114
|
-
}
|
|
100
|
+
var stream = _this2._streams.get(e.stream.id);
|
|
115
101
|
|
|
116
|
-
|
|
102
|
+
var newEvent = {
|
|
103
|
+
stream: stream,
|
|
104
|
+
property: e.changedProperty,
|
|
105
|
+
value: e.newValue
|
|
117
106
|
};
|
|
118
107
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
});
|
|
122
|
-
|
|
123
|
-
setTimeout(function () {
|
|
124
|
-
return finalizeSession({ reason: 'clientDisconnectedTimeout' });
|
|
125
|
-
}, 5000);
|
|
126
|
-
|
|
127
|
-
_this3._session.disconnect();
|
|
128
|
-
});
|
|
129
|
-
};
|
|
108
|
+
_this2.emit(_session.EVENTS.STREAM_PROPERTY_CHANGED, newEvent);
|
|
109
|
+
});
|
|
130
110
|
|
|
131
|
-
|
|
132
|
-
|
|
111
|
+
_this2._session.connect(_this2._credentials.token, function (error) {
|
|
112
|
+
if (error) {
|
|
113
|
+
_this2._session.off();
|
|
133
114
|
|
|
134
|
-
|
|
135
|
-
params = target;
|
|
136
|
-
target = null;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
var otparams = {
|
|
140
|
-
videoSource: null,
|
|
141
|
-
audioSource: null,
|
|
142
|
-
showControls: false,
|
|
143
|
-
name: params.name,
|
|
144
|
-
publishAudio: false,
|
|
145
|
-
publishVideo: false,
|
|
146
|
-
constraints: {
|
|
147
|
-
video: {
|
|
148
|
-
facingMode: 'environment'
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
|
|
153
|
-
if (params.videoDevice) {
|
|
154
|
-
_.assign(otparams, {
|
|
155
|
-
publishVideo: true,
|
|
156
|
-
videoSource: params.videoDevice
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
otparams.constraints.video.deviceId = params.videoDevice;
|
|
160
|
-
|
|
161
|
-
if (params.videoParams) {
|
|
162
|
-
_.assign(otparams, params.videoParams);
|
|
115
|
+
return reject(error);
|
|
163
116
|
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
if (params.audioDevice) {
|
|
167
|
-
_.assign(otparams, {
|
|
168
|
-
publishAudio: true,
|
|
169
|
-
audioSource: params.audioDevice
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
return new Promise(function (resolve, reject) {
|
|
174
|
-
var otpublisher = OT.initPublisher(target, otparams, function (error) {
|
|
175
|
-
if (error) {
|
|
176
|
-
return reject(error);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
var publisher = new _publisher.TsMediaPublisher(_this4, {
|
|
180
|
-
_otpublisher: otpublisher
|
|
181
|
-
});
|
|
182
117
|
|
|
183
|
-
|
|
184
|
-
|
|
118
|
+
return resolve();
|
|
119
|
+
});
|
|
185
120
|
});
|
|
186
|
-
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}, {
|
|
124
|
+
key: "disconnect",
|
|
125
|
+
value: function disconnect(keepSession) {
|
|
126
|
+
var _this3 = this;
|
|
187
127
|
|
|
188
|
-
|
|
189
|
-
|
|
128
|
+
return new Promise(function (resolve) {
|
|
129
|
+
_this3._session.off();
|
|
190
130
|
|
|
191
|
-
|
|
192
|
-
publisher._otpublisher.once('streamCreated', function (event) {
|
|
193
|
-
var stream = new _stream.TsOpenTokStream(_this5, event.stream);
|
|
131
|
+
var sessionFinalized = false;
|
|
194
132
|
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
133
|
+
var finalizeSession = function finalizeSession(event) {
|
|
134
|
+
if (sessionFinalized) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
198
137
|
|
|
199
|
-
|
|
200
|
-
publisher.videoHeight = publisher._otpublisher.videoHeight();
|
|
138
|
+
sessionFinalized = true;
|
|
201
139
|
|
|
202
|
-
|
|
140
|
+
if (!keepSession) {
|
|
141
|
+
_this3._session = null;
|
|
203
142
|
|
|
204
|
-
|
|
143
|
+
_this3.emit(_session.EVENTS.DISCONNECTED);
|
|
144
|
+
}
|
|
205
145
|
|
|
206
|
-
|
|
146
|
+
resolve(event);
|
|
147
|
+
};
|
|
207
148
|
|
|
208
|
-
|
|
209
|
-
|
|
149
|
+
_this3._session.once('sessionDisconnected', function (event) {
|
|
150
|
+
return finalizeSession(event);
|
|
151
|
+
});
|
|
210
152
|
|
|
211
|
-
|
|
212
|
-
|
|
153
|
+
setTimeout(function () {
|
|
154
|
+
return finalizeSession({
|
|
155
|
+
reason: 'clientDisconnectedTimeout'
|
|
156
|
+
});
|
|
157
|
+
}, 5000);
|
|
213
158
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
159
|
+
_this3._session.disconnect();
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
}, {
|
|
163
|
+
key: "createPublisher",
|
|
164
|
+
value: function createPublisher(target, params) {
|
|
165
|
+
var _this4 = this;
|
|
166
|
+
|
|
167
|
+
if (!params) {
|
|
168
|
+
params = target;
|
|
169
|
+
target = null;
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
var otparams = {
|
|
173
|
+
videoSource: null,
|
|
174
|
+
audioSource: null,
|
|
175
|
+
showControls: false,
|
|
176
|
+
name: params.name,
|
|
177
|
+
publishAudio: false,
|
|
178
|
+
publishVideo: false,
|
|
179
|
+
constraints: {
|
|
180
|
+
video: {
|
|
181
|
+
facingMode: 'environment'
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
};
|
|
217
185
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
});
|
|
186
|
+
if (params.videoDevice) {
|
|
187
|
+
_.assign(otparams, {
|
|
188
|
+
publishVideo: true,
|
|
189
|
+
videoSource: params.videoDevice
|
|
223
190
|
});
|
|
224
|
-
};
|
|
225
|
-
|
|
226
|
-
TsOpenTokSession.prototype.destroyPublisher = function destroyPublisher(publisher) {
|
|
227
|
-
return new Promise(function (resolve) {
|
|
228
|
-
publisher._otpublisher.off();
|
|
229
191
|
|
|
230
|
-
|
|
231
|
-
publisher._otpublisher = null;
|
|
192
|
+
otparams.constraints.video.deviceId = params.videoDevice;
|
|
232
193
|
|
|
233
|
-
|
|
234
|
-
|
|
194
|
+
if (params.videoParams) {
|
|
195
|
+
_.assign(otparams, params.videoParams);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
235
198
|
|
|
236
|
-
|
|
199
|
+
if (params.audioDevice) {
|
|
200
|
+
_.assign(otparams, {
|
|
201
|
+
publishAudio: true,
|
|
202
|
+
audioSource: params.audioDevice
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
return new Promise(function (resolve, reject) {
|
|
207
|
+
var otpublisher = OT.initPublisher(target, otparams, function (error) {
|
|
208
|
+
if (error) {
|
|
209
|
+
return reject(error);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
var publisher = new _publisher.TsMediaPublisher(_this4, {
|
|
213
|
+
_otpublisher: otpublisher
|
|
214
|
+
});
|
|
215
|
+
return resolve(publisher);
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
}, {
|
|
220
|
+
key: "publish",
|
|
221
|
+
value: function publish(publisher) {
|
|
222
|
+
var _this5 = this;
|
|
223
|
+
|
|
224
|
+
return new Promise(function (resolve, reject) {
|
|
225
|
+
publisher._otpublisher.once('streamCreated', function (event) {
|
|
226
|
+
var stream = new _stream.TsOpenTokStream(_this5, event.stream);
|
|
227
|
+
publisher.stream = stream;
|
|
228
|
+
stream.publisher = publisher;
|
|
229
|
+
stream.remote = false;
|
|
230
|
+
publisher.videoWidth = publisher._otpublisher.videoWidth();
|
|
231
|
+
publisher.videoHeight = publisher._otpublisher.videoHeight();
|
|
232
|
+
publisher.emit(_publisher.EVENTS.STREAM_CREATED, stream);
|
|
233
|
+
var video = stream.getVideoElement(publisher._otpublisher.element)[0];
|
|
234
|
+
stream.setupDimensionsListener(video);
|
|
235
|
+
return resolve();
|
|
237
236
|
});
|
|
238
|
-
};
|
|
239
|
-
|
|
240
|
-
TsOpenTokSession.prototype.createSubscriber = function createSubscriber(stream, target, params) {
|
|
241
|
-
var _this6 = this;
|
|
242
|
-
|
|
243
|
-
return new Promise(function (resolve, reject) {
|
|
244
|
-
if (stream._otstream.destroyed) {
|
|
245
|
-
return reject(stream._otstream.destroyedReason);
|
|
246
|
-
}
|
|
247
237
|
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
return reject(err);
|
|
251
|
-
}
|
|
238
|
+
publisher._otpublisher.once('destroyed', function () {
|
|
239
|
+
publisher.emit(_publisher.EVENTS.DESTROYED);
|
|
252
240
|
|
|
253
|
-
|
|
254
|
-
});
|
|
241
|
+
publisher._otpublisher.off();
|
|
255
242
|
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
finish(event.stream.destroyedReason);
|
|
259
|
-
}
|
|
260
|
-
}
|
|
243
|
+
publisher._otpublisher = null;
|
|
244
|
+
});
|
|
261
245
|
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
246
|
+
_this5._session.publish(publisher._otpublisher, function (error) {
|
|
247
|
+
if (error) {
|
|
248
|
+
return reject(error);
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
});
|
|
252
|
+
}
|
|
253
|
+
}, {
|
|
254
|
+
key: "destroyPublisher",
|
|
255
|
+
value: function destroyPublisher(publisher) {
|
|
256
|
+
return new Promise(function (resolve) {
|
|
257
|
+
publisher._otpublisher.off();
|
|
258
|
+
|
|
259
|
+
publisher._otpublisher.once('destroyed', function () {
|
|
260
|
+
publisher._otpublisher = null;
|
|
261
|
+
resolve();
|
|
262
|
+
});
|
|
265
263
|
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
264
|
+
publisher._otpublisher.destroy();
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}, {
|
|
268
|
+
key: "createSubscriber",
|
|
269
|
+
value: function createSubscriber(stream, target, params) {
|
|
270
|
+
var _this6 = this;
|
|
271
|
+
|
|
272
|
+
return new Promise(function (resolve, reject) {
|
|
273
|
+
if (stream._otstream.destroyed) {
|
|
274
|
+
return reject(stream._otstream.destroyedReason);
|
|
275
|
+
}
|
|
269
276
|
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
});
|
|
277
|
+
var finish = _.once(function (err, res) {
|
|
278
|
+
if (err) {
|
|
279
|
+
return reject(err);
|
|
280
|
+
}
|
|
275
281
|
|
|
276
|
-
|
|
277
|
-
});
|
|
282
|
+
return resolve(res);
|
|
278
283
|
});
|
|
279
|
-
};
|
|
280
284
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
285
|
+
function onDestroy(event) {
|
|
286
|
+
if (event.stream.id === stream._otstream.id) {
|
|
287
|
+
finish(event.stream.destroyedReason);
|
|
288
|
+
}
|
|
284
289
|
}
|
|
285
290
|
|
|
286
|
-
|
|
287
|
-
subscriber._otsubscriber.off();
|
|
291
|
+
_this6._session.on('streamDestroyed', onDestroy);
|
|
288
292
|
|
|
289
|
-
|
|
290
|
-
|
|
293
|
+
var otsubscriber = _this6._session.subscribe(stream._otstream, target, params, function (error) {
|
|
294
|
+
_this6._session.off('streamDestroyed', onDestroy);
|
|
291
295
|
|
|
292
|
-
|
|
293
|
-
|
|
296
|
+
if (error) {
|
|
297
|
+
return finish(error);
|
|
298
|
+
}
|
|
294
299
|
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
300
|
+
var subscriber = new _subscriber.TsMediaSubscriber({
|
|
301
|
+
stream: stream,
|
|
302
|
+
_otsubscriber: otsubscriber,
|
|
303
|
+
_session: _this6
|
|
304
|
+
});
|
|
305
|
+
return finish(null, subscriber);
|
|
306
|
+
});
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
}, {
|
|
310
|
+
key: "destroySubscriber",
|
|
311
|
+
value: function destroySubscriber(subscriber) {
|
|
312
|
+
if (!subscriber._otsubscriber || !(subscriber._otsubscriber.element || subscriber._otsubscriber.stream)) {
|
|
313
|
+
return Promise.resolve();
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
return new Promise(function (resolve) {
|
|
317
|
+
subscriber._otsubscriber.off();
|
|
318
|
+
|
|
319
|
+
subscriber._otsubscriber.on('destroyed', function () {
|
|
320
|
+
subscriber._otsubscriber = null;
|
|
321
|
+
return resolve();
|
|
298
322
|
});
|
|
299
|
-
};
|
|
300
323
|
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
324
|
+
subscriber._otsubscriber.destroy();
|
|
325
|
+
}).timeout(5000)["catch"](function () {
|
|
326
|
+
return null;
|
|
327
|
+
});
|
|
328
|
+
}
|
|
329
|
+
}]);
|
|
307
330
|
|
|
308
|
-
|
|
331
|
+
return TsOpenTokSession;
|
|
309
332
|
}(_session.TsMediaSession);
|
|
333
|
+
|
|
334
|
+
exports.TsOpenTokSession = TsOpenTokSession;
|
|
310
335
|
//# sourceMappingURL=session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["oldCode/opentok/session.js"],"names":["TsOpenTokSession","credentials","_credentials","_session","OT","initSession","apiKey","sessionId","_disconnectIfAlreadyConnected","isConnected","Promise","resolve","disconnect","connect","then","reject","on","emit","EVENTS","CONNECTED","e","DISCONNECTED","STREAM_CREATED","TsOpenTokStream","stream","_streams","delete","id","STREAM_DESTROYED","changedProperty","get","newEvent","property","value","newValue","STREAM_PROPERTY_CHANGED","token","error","off","keepSession","sessionFinalized","finalizeSession","event","once","setTimeout","reason","createPublisher","target","params","otparams","videoSource","audioSource","showControls","name","publishAudio","publishVideo","constraints","video","facingMode","videoDevice","_","assign","deviceId","videoParams","audioDevice","otpublisher","initPublisher","publisher","TsMediaPublisher","_otpublisher","publish","remote","videoWidth","videoHeight","PUBLISHER_EVENTS","getVideoElement","element","setupDimensionsListener","DESTROYED","destroyPublisher","destroy","createSubscriber","_otstream","destroyed","destroyedReason","finish","err","res","onDestroy","otsubscriber","subscribe","subscriber","TsMediaSubscriber","_otsubscriber","destroySubscriber","timeout","catch","TsMediaSession"],"mappings":"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","file":"session.js","sourcesContent":["import {\n EVENTS,\n TsMediaSession,\n} from '../session';\n\nimport {\n EVENTS as PUBLISHER_EVENTS,\n TsMediaPublisher,\n} from '../publisher';\n\nimport {\n TsMediaSubscriber,\n} from '../subscriber';\n\nimport {\n TsOpenTokStream,\n} from './stream';\n\nexport class TsOpenTokSession extends TsMediaSession {\n constructor({credentials}) {\n super();\n\n this._credentials = credentials;\n this._session = OT.initSession(\n credentials.apiKey,\n credentials.sessionId\n );\n }\n\n get id() {\n return this._session && this._session.sessionId;\n }\n\n _disconnectIfAlreadyConnected() {\n if (!this._session.isConnected()) {\n return Promise.resolve();\n }\n\n return this.disconnect(true);\n }\n\n connect() {\n return this._disconnectIfAlreadyConnected()\n .then(() => new Promise((resolve, reject) => {\n this._session.on('sessionConnected', () => {\n this.emit(EVENTS.CONNECTED);\n });\n this._session.on('sessionDisconnected', (e) => {\n this.emit(EVENTS.DISCONNECTED, e);\n });\n\n this._session.on('streamCreated', (e) => {\n this.emit(EVENTS.STREAM_CREATED, new TsOpenTokStream(this, e.stream));\n });\n\n this._session.on('streamDestroyed', (e) => {\n this._streams.delete(e.stream.id);\n\n this.emit(EVENTS.STREAM_DESTROYED, e);\n });\n this._session.on('streamPropertyChanged', (e) => {\n if (e.changedProperty === 'videoDimensions') {\n return;\n }\n\n const stream = this._streams.get(e.stream.id);\n\n const newEvent = {\n stream,\n property: e.changedProperty,\n value: e.newValue,\n };\n\n this.emit(EVENTS.STREAM_PROPERTY_CHANGED, newEvent);\n });\n\n\n this._session.connect(this._credentials.token, (error) => {\n if (error) {\n this._session.off();\n\n return reject(error);\n }\n\n return resolve();\n });\n }));\n }\n\n disconnect(keepSession) {\n return new Promise((resolve) => {\n this._session.off();\n\n let sessionFinalized = false;\n\n const finalizeSession = (event) => {\n if (sessionFinalized) {\n return;\n }\n\n sessionFinalized = true;\n\n if (!keepSession) {\n this._session = null;\n\n this.emit(EVENTS.DISCONNECTED);\n }\n\n resolve(event);\n };\n\n this._session.once('sessionDisconnected', (event) => finalizeSession(event));\n\n setTimeout(() => finalizeSession({reason: 'clientDisconnectedTimeout'}), 5000);\n\n this._session.disconnect();\n });\n }\n\n createPublisher(target, params) {\n if (!params) {\n params = target;\n target = null;\n }\n\n const otparams = {\n videoSource: null,\n audioSource: null,\n showControls: false,\n name: params.name,\n publishAudio: false,\n publishVideo: false,\n constraints: {\n video: {\n facingMode: 'environment'\n }\n }\n };\n\n if (params.videoDevice) {\n _.assign(otparams, {\n publishVideo: true,\n videoSource: params.videoDevice,\n });\n\n otparams.constraints.video.deviceId = params.videoDevice;\n\n if (params.videoParams) {\n _.assign(otparams, params.videoParams);\n }\n }\n\n if (params.audioDevice) {\n _.assign(otparams, {\n publishAudio: true,\n audioSource: params.audioDevice,\n });\n }\n\n return new Promise((resolve, reject) => {\n const otpublisher = OT.initPublisher(target, otparams, (error) => {\n if (error) {\n return reject(error);\n }\n\n const publisher = new TsMediaPublisher(this, {\n _otpublisher: otpublisher,\n });\n\n return resolve(publisher);\n });\n });\n }\n\n publish(publisher) {\n return new Promise((resolve, reject) => {\n publisher._otpublisher.once('streamCreated', (event) => {\n const stream = new TsOpenTokStream(this, event.stream);\n\n publisher.stream = stream;\n stream.publisher = publisher;\n stream.remote = false;\n\n publisher.videoWidth = publisher._otpublisher.videoWidth();\n publisher.videoHeight = publisher._otpublisher.videoHeight();\n\n publisher.emit(PUBLISHER_EVENTS.STREAM_CREATED, stream);\n\n const video = stream.getVideoElement(publisher._otpublisher.element)[0];\n\n stream.setupDimensionsListener(video);\n\n return resolve();\n });\n\n publisher._otpublisher.once('destroyed', () => {\n publisher.emit(PUBLISHER_EVENTS.DESTROYED);\n\n publisher._otpublisher.off();\n publisher._otpublisher = null;\n });\n\n this._session.publish(publisher._otpublisher, (error) => {\n if (error) {\n return reject(error);\n }\n });\n });\n }\n\n destroyPublisher(publisher) {\n return new Promise((resolve) => {\n publisher._otpublisher.off();\n\n publisher._otpublisher.once('destroyed', () => {\n publisher._otpublisher = null;\n\n resolve();\n });\n\n publisher._otpublisher.destroy();\n });\n }\n\n createSubscriber(stream, target, params) {\n return new Promise((resolve, reject) => {\n if (stream._otstream.destroyed) {\n return reject(stream._otstream.destroyedReason);\n }\n\n const finish = _.once((err, res) => {\n if (err) {\n return reject(err);\n }\n\n return resolve(res);\n });\n\n function onDestroy(event) {\n if (event.stream.id === stream._otstream.id) {\n finish(event.stream.destroyedReason);\n }\n }\n\n this._session.on('streamDestroyed', onDestroy);\n const otsubscriber = this._session.subscribe(\n stream._otstream, target, params,\n (error) => {\n this._session.off('streamDestroyed', onDestroy);\n\n if (error) {\n return finish(error);\n }\n\n const subscriber = new TsMediaSubscriber({\n stream,\n _otsubscriber: otsubscriber,\n _session: this,\n });\n\n return finish(null, subscriber);\n }\n );\n });\n }\n\n destroySubscriber(subscriber) {\n if (!subscriber._otsubscriber || !(subscriber._otsubscriber.element || subscriber._otsubscriber.stream)) {\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n subscriber._otsubscriber.off();\n\n subscriber._otsubscriber.on('destroyed', () => {\n subscriber._otsubscriber = null;\n\n return resolve();\n });\n\n subscriber._otsubscriber.destroy();\n })\n .timeout(5000)\n .catch(() => null);\n }\n}\n\n"]}
|
|
1
|
+
{"version":3,"sources":["oldCode/opentok/session.js"],"names":["TsOpenTokSession","credentials","_credentials","_session","OT","initSession","apiKey","sessionId","isConnected","Promise","resolve","disconnect","_disconnectIfAlreadyConnected","then","reject","on","emit","EVENTS","CONNECTED","e","DISCONNECTED","STREAM_CREATED","TsOpenTokStream","stream","_streams","id","STREAM_DESTROYED","changedProperty","get","newEvent","property","value","newValue","STREAM_PROPERTY_CHANGED","connect","token","error","off","keepSession","sessionFinalized","finalizeSession","event","once","setTimeout","reason","target","params","otparams","videoSource","audioSource","showControls","name","publishAudio","publishVideo","constraints","video","facingMode","videoDevice","_","assign","deviceId","videoParams","audioDevice","otpublisher","initPublisher","publisher","TsMediaPublisher","_otpublisher","remote","videoWidth","videoHeight","PUBLISHER_EVENTS","getVideoElement","element","setupDimensionsListener","DESTROYED","publish","destroy","_otstream","destroyed","destroyedReason","finish","err","res","onDestroy","otsubscriber","subscribe","subscriber","TsMediaSubscriber","_otsubscriber","timeout","TsMediaSession"],"mappings":"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","sourcesContent":["import {\n EVENTS,\n TsMediaSession,\n} from '../session';\n\nimport {\n EVENTS as PUBLISHER_EVENTS,\n TsMediaPublisher,\n} from '../publisher';\n\nimport {\n TsMediaSubscriber,\n} from '../subscriber';\n\nimport {\n TsOpenTokStream,\n} from './stream';\n\nexport class TsOpenTokSession extends TsMediaSession {\n constructor({credentials}) {\n super();\n\n this._credentials = credentials;\n this._session = OT.initSession(\n credentials.apiKey,\n credentials.sessionId\n );\n }\n\n get id() {\n return this._session && this._session.sessionId;\n }\n\n _disconnectIfAlreadyConnected() {\n if (!this._session.isConnected()) {\n return Promise.resolve();\n }\n\n return this.disconnect(true);\n }\n\n connect() {\n return this._disconnectIfAlreadyConnected()\n .then(() => new Promise((resolve, reject) => {\n this._session.on('sessionConnected', () => {\n this.emit(EVENTS.CONNECTED);\n });\n this._session.on('sessionDisconnected', (e) => {\n this.emit(EVENTS.DISCONNECTED, e);\n });\n\n this._session.on('streamCreated', (e) => {\n this.emit(EVENTS.STREAM_CREATED, new TsOpenTokStream(this, e.stream));\n });\n\n this._session.on('streamDestroyed', (e) => {\n this._streams.delete(e.stream.id);\n\n this.emit(EVENTS.STREAM_DESTROYED, e);\n });\n this._session.on('streamPropertyChanged', (e) => {\n if (e.changedProperty === 'videoDimensions') {\n return;\n }\n\n const stream = this._streams.get(e.stream.id);\n\n const newEvent = {\n stream,\n property: e.changedProperty,\n value: e.newValue,\n };\n\n this.emit(EVENTS.STREAM_PROPERTY_CHANGED, newEvent);\n });\n\n\n this._session.connect(this._credentials.token, (error) => {\n if (error) {\n this._session.off();\n\n return reject(error);\n }\n\n return resolve();\n });\n }));\n }\n\n disconnect(keepSession) {\n return new Promise((resolve) => {\n this._session.off();\n\n let sessionFinalized = false;\n\n const finalizeSession = (event) => {\n if (sessionFinalized) {\n return;\n }\n\n sessionFinalized = true;\n\n if (!keepSession) {\n this._session = null;\n\n this.emit(EVENTS.DISCONNECTED);\n }\n\n resolve(event);\n };\n\n this._session.once('sessionDisconnected', (event) => finalizeSession(event));\n\n setTimeout(() => finalizeSession({reason: 'clientDisconnectedTimeout'}), 5000);\n\n this._session.disconnect();\n });\n }\n\n createPublisher(target, params) {\n if (!params) {\n params = target;\n target = null;\n }\n\n const otparams = {\n videoSource: null,\n audioSource: null,\n showControls: false,\n name: params.name,\n publishAudio: false,\n publishVideo: false,\n constraints: {\n video: {\n facingMode: 'environment'\n }\n }\n };\n\n if (params.videoDevice) {\n _.assign(otparams, {\n publishVideo: true,\n videoSource: params.videoDevice,\n });\n\n otparams.constraints.video.deviceId = params.videoDevice;\n\n if (params.videoParams) {\n _.assign(otparams, params.videoParams);\n }\n }\n\n if (params.audioDevice) {\n _.assign(otparams, {\n publishAudio: true,\n audioSource: params.audioDevice,\n });\n }\n\n return new Promise((resolve, reject) => {\n const otpublisher = OT.initPublisher(target, otparams, (error) => {\n if (error) {\n return reject(error);\n }\n\n const publisher = new TsMediaPublisher(this, {\n _otpublisher: otpublisher,\n });\n\n return resolve(publisher);\n });\n });\n }\n\n publish(publisher) {\n return new Promise((resolve, reject) => {\n publisher._otpublisher.once('streamCreated', (event) => {\n const stream = new TsOpenTokStream(this, event.stream);\n\n publisher.stream = stream;\n stream.publisher = publisher;\n stream.remote = false;\n\n publisher.videoWidth = publisher._otpublisher.videoWidth();\n publisher.videoHeight = publisher._otpublisher.videoHeight();\n\n publisher.emit(PUBLISHER_EVENTS.STREAM_CREATED, stream);\n\n const video = stream.getVideoElement(publisher._otpublisher.element)[0];\n\n stream.setupDimensionsListener(video);\n\n return resolve();\n });\n\n publisher._otpublisher.once('destroyed', () => {\n publisher.emit(PUBLISHER_EVENTS.DESTROYED);\n\n publisher._otpublisher.off();\n publisher._otpublisher = null;\n });\n\n this._session.publish(publisher._otpublisher, (error) => {\n if (error) {\n return reject(error);\n }\n });\n });\n }\n\n destroyPublisher(publisher) {\n return new Promise((resolve) => {\n publisher._otpublisher.off();\n\n publisher._otpublisher.once('destroyed', () => {\n publisher._otpublisher = null;\n\n resolve();\n });\n\n publisher._otpublisher.destroy();\n });\n }\n\n createSubscriber(stream, target, params) {\n return new Promise((resolve, reject) => {\n if (stream._otstream.destroyed) {\n return reject(stream._otstream.destroyedReason);\n }\n\n const finish = _.once((err, res) => {\n if (err) {\n return reject(err);\n }\n\n return resolve(res);\n });\n\n function onDestroy(event) {\n if (event.stream.id === stream._otstream.id) {\n finish(event.stream.destroyedReason);\n }\n }\n\n this._session.on('streamDestroyed', onDestroy);\n const otsubscriber = this._session.subscribe(\n stream._otstream, target, params,\n (error) => {\n this._session.off('streamDestroyed', onDestroy);\n\n if (error) {\n return finish(error);\n }\n\n const subscriber = new TsMediaSubscriber({\n stream,\n _otsubscriber: otsubscriber,\n _session: this,\n });\n\n return finish(null, subscriber);\n }\n );\n });\n }\n\n destroySubscriber(subscriber) {\n if (!subscriber._otsubscriber || !(subscriber._otsubscriber.element || subscriber._otsubscriber.stream)) {\n return Promise.resolve();\n }\n\n return new Promise((resolve) => {\n subscriber._otsubscriber.off();\n\n subscriber._otsubscriber.on('destroyed', () => {\n subscriber._otsubscriber = null;\n\n return resolve();\n });\n\n subscriber._otsubscriber.destroy();\n })\n .timeout(5000)\n .catch(() => null);\n }\n}\n\n"],"file":"session.js"}
|