1
0

Update videoSyncServerScript.js

This commit is contained in:
Darlingnotin 2020-10-18 22:01:01 -04:00
parent 4b427ec4fc
commit 5b411c6863

View File

@ -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;