Update videoSyncServerScript.js
This commit is contained in:
parent
4b427ec4fc
commit
5b411c6863
@ -16,10 +16,15 @@
|
|||||||
var useGatewayServer = false;
|
var useGatewayServer = false;
|
||||||
var gatewayServerConnected = false;
|
var gatewayServerConnected = false;
|
||||||
var connectionAttempts = 0;
|
var connectionAttempts = 0;
|
||||||
|
var lastUpdated = 0;
|
||||||
|
var currentUserData;
|
||||||
|
var checkCurrentUserDataTimeout;
|
||||||
|
var checkCurrentUserDataTimeoutIsRunning = false;
|
||||||
var gatewayUserData = {
|
var gatewayUserData = {
|
||||||
"useGatewayServer": false,
|
"useGatewayServer": false,
|
||||||
"wsUrl": "",
|
"wsUrl": "",
|
||||||
"serverConnected": false,
|
"serverConnected": false,
|
||||||
|
"lastUpdated": 0
|
||||||
};
|
};
|
||||||
|
|
||||||
function openWebSocket() {
|
function openWebSocket() {
|
||||||
@ -30,9 +35,10 @@
|
|||||||
gatewayServerConnected = true;
|
gatewayServerConnected = true;
|
||||||
connectionAttempts = 0;
|
connectionAttempts = 0;
|
||||||
UserData.serverConnected = true;
|
UserData.serverConnected = true;
|
||||||
Entities.editEntity(videoPlayerChannel, {
|
lastUpdated = Date.now();
|
||||||
userData: JSON.stringify(UserData)
|
UserData.lastUpdated = lastUpdated;
|
||||||
});
|
currentUserData = UserData;
|
||||||
|
updateUserData();
|
||||||
}
|
}
|
||||||
ws.onmessage = function (evt) {
|
ws.onmessage = function (evt) {
|
||||||
var wsMessageData = JSON.parse(evt.data);
|
var wsMessageData = JSON.parse(evt.data);
|
||||||
@ -51,31 +57,54 @@
|
|||||||
ws.onclose = function () {
|
ws.onclose = function () {
|
||||||
gatewayServerConnected = false;
|
gatewayServerConnected = false;
|
||||||
UserData.serverConnected = false;
|
UserData.serverConnected = false;
|
||||||
Entities.editEntity(videoPlayerChannel, {
|
lastUpdated = Date.now();
|
||||||
userData: JSON.stringify(UserData)
|
UserData.lastUpdated = lastUpdated;
|
||||||
});
|
currentUserData = UserData;
|
||||||
|
updateUserData();
|
||||||
if (useGatewayServer) {
|
if (useGatewayServer) {
|
||||||
Script.setTimeout(function () {
|
Script.setTimeout(function () {
|
||||||
connectionAttempts++;
|
connectionAttempts++;
|
||||||
openWebSocket();
|
if (connectionAttempts >= 2) {
|
||||||
if (connectionAttempts >= 5) {
|
|
||||||
useGatewayServer = false;
|
useGatewayServer = false;
|
||||||
|
lastUpdated = Date.now();
|
||||||
gatewayUserData = {
|
gatewayUserData = {
|
||||||
"useGatewayServer": false,
|
"useGatewayServer": false,
|
||||||
"wsUrl": "",
|
"wsUrl": "",
|
||||||
"serverConnected": false,
|
"serverConnected": false,
|
||||||
|
"lastUpdated": lastUpdated
|
||||||
};
|
};
|
||||||
Script.setTimeout(function () {
|
currentUserData = gatewayUserData;
|
||||||
Entities.editEntity(videoPlayerChannel, {
|
currentUserData.lastUpdated = lastUpdated;
|
||||||
userData: JSON.stringify(gatewayUserData)
|
updateUserData();
|
||||||
});
|
} else {
|
||||||
}, 6000);
|
openWebSocket();
|
||||||
}
|
}
|
||||||
}, 1000);
|
}, 3000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function updateUserData() {
|
||||||
|
Entities.editEntity(videoPlayerChannel, {
|
||||||
|
userData: JSON.stringify(currentUserData)
|
||||||
|
});
|
||||||
|
checkCurrentUserData();
|
||||||
|
}
|
||||||
|
|
||||||
|
function checkCurrentUserData() {
|
||||||
|
if (checkCurrentUserDataTimeoutIsRunning) {
|
||||||
|
clearTimeout(checkCurrentUserDataTimeout);
|
||||||
|
}
|
||||||
|
checkCurrentUserDataTimeout = Script.setTimeout(function () {
|
||||||
|
var entityUserData = Entities.getEntityProperties(videoPlayerChannel, ["userData"]);
|
||||||
|
var UserData = JSON.parse(entityUserData.userData);
|
||||||
|
if (UserData.lastUpdated != lastUpdated) {
|
||||||
|
console.log(currentUserData.lastUpdated + " " + lastUpdated);
|
||||||
|
updateUserData();
|
||||||
|
}
|
||||||
|
}, 6000);
|
||||||
|
}
|
||||||
|
|
||||||
this.preload = function (entityID) {
|
this.preload = function (entityID) {
|
||||||
var entityUserData = Entities.getEntityProperties(entityID, ["userData"]);
|
var entityUserData = Entities.getEntityProperties(entityID, ["userData"]);
|
||||||
var UserData = JSON.parse(entityUserData.userData);
|
var UserData = JSON.parse(entityUserData.userData);
|
||||||
@ -156,9 +185,9 @@
|
|||||||
} else if (messageData.action == "videoSyncGateway") {
|
} else if (messageData.action == "videoSyncGateway") {
|
||||||
gatewayUserData.wsUrl = "ws://" + messageData.gatewayIp + ":7080";
|
gatewayUserData.wsUrl = "ws://" + messageData.gatewayIp + ":7080";
|
||||||
gatewayUserData.useGatewayServer = true;
|
gatewayUserData.useGatewayServer = true;
|
||||||
Entities.editEntity(videoPlayerChannel, {
|
currentUserData = gatewayUserData;
|
||||||
userData: JSON.stringify(gatewayUserData)
|
console.log(JSON.stringify(currentUserData));
|
||||||
});
|
updateUserData();
|
||||||
useGatewayServer = true;
|
useGatewayServer = true;
|
||||||
wsUrl = "ws://" + messageData.gatewayIp + ":7080";
|
wsUrl = "ws://" + messageData.gatewayIp + ":7080";
|
||||||
connectionAttempts = 0;
|
connectionAttempts = 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user