@flashphoner/websdk 2.0.208 → 2.0.209
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/docTemplate/README.md +1 -1
- package/examples/demo/streaming/stream-auto-restore/stream-auto-restore.html +77 -1
- package/examples/demo/streaming/stream-auto-restore/stream-auto-restore.js +472 -84
- package/flashphoner-no-flash.js +84 -3
- package/flashphoner-no-flash.min.js +1 -1
- package/flashphoner-no-webrtc.js +84 -3
- package/flashphoner-no-webrtc.min.js +1 -1
- package/flashphoner-no-wsplayer.js +84 -3
- package/flashphoner-no-wsplayer.min.js +1 -1
- package/flashphoner-room-api.js +74 -1
- package/flashphoner-room-api.min.js +1 -1
- package/flashphoner-temasys-flash-websocket-without-adapterjs.js +84 -3
- package/flashphoner-temasys-flash-websocket.js +84 -3
- package/flashphoner-temasys-flash-websocket.min.js +1 -1
- package/flashphoner-webrtc-only.js +84 -3
- package/flashphoner-webrtc-only.min.js +1 -1
- package/flashphoner.js +84 -3
- package/flashphoner.min.js +1 -1
- package/package.json +1 -1
- package/src/flashphoner-core.d.ts +4 -1
- package/src/flashphoner-core.js +74 -1
package/flashphoner.js
CHANGED
|
@@ -11487,6 +11487,9 @@ var getSession = function getSession(id) {
|
|
|
11487
11487
|
* @param {Object=} options.sipOptions Sip configuration
|
|
11488
11488
|
* @param {Object=} options.mediaOptions Media connection configuration
|
|
11489
11489
|
* @param {Integer=} options.timeout Connection timeout in milliseconds
|
|
11490
|
+
* @param {Integer=} options.pingInterval Server ping interval in milliseconds [0]
|
|
11491
|
+
* @param {Integer=} options.receiveProbes A maximum subsequental pings received missing count [0]
|
|
11492
|
+
* @param {Integer=} options.probesInterval Interval to check subsequental pings received [0]
|
|
11490
11493
|
* @returns {Session} Created session
|
|
11491
11494
|
* @throws {Error} Error if API is not initialized
|
|
11492
11495
|
* @throws {TypeError} Error if options.urlServer is not specified
|
|
@@ -11513,6 +11516,8 @@ var createSession = function createSession(options) {
|
|
|
11513
11516
|
var mediaOptions = options.mediaOptions;
|
|
11514
11517
|
var keepAlive = options.keepAlive;
|
|
11515
11518
|
var timeout = options.timeout;
|
|
11519
|
+
var wsPingSender = new WSPingSender(options.pingInterval || 0);
|
|
11520
|
+
var wsPingReceiver = new WSPingReceiver(options.receiveProbes || 0, options.probesInterval || 0);
|
|
11516
11521
|
var connectionTimeout;
|
|
11517
11522
|
var cConfig; //SIP config
|
|
11518
11523
|
|
|
@@ -11630,7 +11635,7 @@ var createSession = function createSession(options) {
|
|
|
11630
11635
|
mediaProviders: Object.keys(MediaProvider),
|
|
11631
11636
|
keepAlive: keepAlive,
|
|
11632
11637
|
authToken: authToken,
|
|
11633
|
-
clientVersion: "2.0.
|
|
11638
|
+
clientVersion: "2.0.209",
|
|
11634
11639
|
clientOSVersion: window.navigator.appVersion,
|
|
11635
11640
|
clientBrowserVersion: window.navigator.userAgent,
|
|
11636
11641
|
msePacketizationVersion: 2,
|
|
@@ -11643,7 +11648,11 @@ var createSession = function createSession(options) {
|
|
|
11643
11648
|
|
|
11644
11649
|
|
|
11645
11650
|
send("connection", cConfig);
|
|
11646
|
-
logger.setConnection(wsConnection);
|
|
11651
|
+
logger.setConnection(wsConnection); // Send ping messages to server to check if connection is still alive #WCS-3410
|
|
11652
|
+
|
|
11653
|
+
wsPingSender.start(); // Check subsequintel pings received from server to check if connection is still alive #WCS-3410
|
|
11654
|
+
|
|
11655
|
+
wsPingReceiver.start();
|
|
11647
11656
|
};
|
|
11648
11657
|
|
|
11649
11658
|
wsConnection.onmessage = function (event) {
|
|
@@ -11659,6 +11668,7 @@ var createSession = function createSession(options) {
|
|
|
11659
11668
|
switch (data.message) {
|
|
11660
11669
|
case 'ping':
|
|
11661
11670
|
send("pong", null);
|
|
11671
|
+
wsPingReceiver.success();
|
|
11662
11672
|
break;
|
|
11663
11673
|
|
|
11664
11674
|
case 'getUserData':
|
|
@@ -11818,7 +11828,11 @@ var createSession = function createSession(options) {
|
|
|
11818
11828
|
sessionStatus = newStatus;
|
|
11819
11829
|
|
|
11820
11830
|
if (sessionStatus == SESSION_STATUS.DISCONNECTED || sessionStatus == SESSION_STATUS.FAILED) {
|
|
11821
|
-
//
|
|
11831
|
+
// Stop pinging server #WCS-3410
|
|
11832
|
+
wsPingSender.stop(); // Stop checking pings received #WCS-3410
|
|
11833
|
+
|
|
11834
|
+
wsPingReceiver.stop(); //remove streams
|
|
11835
|
+
|
|
11822
11836
|
for (var prop in streamRefreshHandlers) {
|
|
11823
11837
|
if (streamRefreshHandlers.hasOwnProperty(prop) && typeof streamRefreshHandlers[prop] === 'function') {
|
|
11824
11838
|
streamRefreshHandlers[prop]({
|
|
@@ -11834,6 +11848,73 @@ var createSession = function createSession(options) {
|
|
|
11834
11848
|
if (callbacks[sessionStatus]) {
|
|
11835
11849
|
callbacks[sessionStatus](session, obj);
|
|
11836
11850
|
}
|
|
11851
|
+
} // Websocket periodic ping sender
|
|
11852
|
+
|
|
11853
|
+
|
|
11854
|
+
function WSPingSender(interval) {
|
|
11855
|
+
this.interval = interval || 0;
|
|
11856
|
+
this.intervalId = null;
|
|
11857
|
+
|
|
11858
|
+
this.start = function () {
|
|
11859
|
+
if (this.interval > 0) {
|
|
11860
|
+
this.intervalId = setInterval(function () {
|
|
11861
|
+
send("ping", null);
|
|
11862
|
+
}, this.interval);
|
|
11863
|
+
}
|
|
11864
|
+
};
|
|
11865
|
+
|
|
11866
|
+
this.stop = function () {
|
|
11867
|
+
if (this.intervalId) {
|
|
11868
|
+
clearInterval(this.intervalId);
|
|
11869
|
+
}
|
|
11870
|
+
};
|
|
11871
|
+
|
|
11872
|
+
return this;
|
|
11873
|
+
} // Websocket ping receive prober
|
|
11874
|
+
|
|
11875
|
+
|
|
11876
|
+
function WSPingReceiver(receiveProbes, probesInterval) {
|
|
11877
|
+
this.maxPings = receiveProbes || 0;
|
|
11878
|
+
this.interval = probesInterval || 0;
|
|
11879
|
+
this.intervalId = null;
|
|
11880
|
+
this.pingsMissing = 0;
|
|
11881
|
+
|
|
11882
|
+
this.start = function () {
|
|
11883
|
+
if (this.maxPings > 0 && this.interval > 0) {
|
|
11884
|
+
var receiver = this;
|
|
11885
|
+
this.intervalId = setInterval(function () {
|
|
11886
|
+
receiver.checkPingsReceived();
|
|
11887
|
+
}, this.interval);
|
|
11888
|
+
}
|
|
11889
|
+
};
|
|
11890
|
+
|
|
11891
|
+
this.stop = function () {
|
|
11892
|
+
if (this.intervalId) {
|
|
11893
|
+
clearInterval(this.intervalId);
|
|
11894
|
+
}
|
|
11895
|
+
|
|
11896
|
+
this.pingsMissing = 0;
|
|
11897
|
+
};
|
|
11898
|
+
|
|
11899
|
+
this.checkPingsReceived = function () {
|
|
11900
|
+
this.pingsMissing++;
|
|
11901
|
+
|
|
11902
|
+
if (this.pingsMissing >= this.maxPings) {
|
|
11903
|
+
this.failure();
|
|
11904
|
+
}
|
|
11905
|
+
};
|
|
11906
|
+
|
|
11907
|
+
this.success = function () {
|
|
11908
|
+
this.pingsMissing = 0;
|
|
11909
|
+
};
|
|
11910
|
+
|
|
11911
|
+
this.failure = function () {
|
|
11912
|
+
logger.info(LOG_PREFIX, "Missing " + this.pingsMissing + " pings from server, connection seems to be down");
|
|
11913
|
+
onSessionStatusChange(SESSION_STATUS.FAILED);
|
|
11914
|
+
wsConnection.close();
|
|
11915
|
+
};
|
|
11916
|
+
|
|
11917
|
+
return this;
|
|
11837
11918
|
}
|
|
11838
11919
|
/**
|
|
11839
11920
|
* @callback sdpHook
|