Add a timeout to the request to the MS server

Add a timeout (10 sec.) to the request to the MS server
and add a dead service indication when a server didn't respond within the timeout delay.
This commit is contained in:
Alezia Kurdis 2022-08-28 21:18:29 -04:00 committed by GitHub
parent bf231dfc87
commit 74d63fc95c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 1 deletions

View file

@ -215,11 +215,16 @@
regionStyle = " style='background-color: #004d57;'";
}
var serverInError = "";
if (metaverseList[m].error) {
serverInError = "💀 ";
}
formattedMetaverseList = formattedMetaverseList + "<div class = 'placeEntry' id='place-" + metaverseList[m].url + "'" + regionStyle + "><div class = 'blur'>";
formattedMetaverseList = formattedMetaverseList + "<table class='placeTable'>";
formattedMetaverseList = formattedMetaverseList + " <tr valign = 'top'>";
formattedMetaverseList = formattedMetaverseList + " <td width='2%'></td>";
formattedMetaverseList = formattedMetaverseList + " <td align='left' width='75%' ><font class= 'metaverseTitle region-" + metaverseList[m].region.toUpperCase() + "' >" + metaverseList[m].url + "</font></td>";
formattedMetaverseList = formattedMetaverseList + " <td align='left' width='75%' ><font class= 'metaverseTitle region-" + metaverseList[m].region.toUpperCase() + "' >" + serverInError + metaverseList[m].url + "</font></td>";
if (!metaverseList[m].pinned) {
formattedMetaverseList = formattedMetaverseList + " <td align='right' ><span style='padding: 0%; cursor: pointer;' onclick='pinMetaverse(" + m + ", true);'><img src='icons/notpinned.png' width='26' height='26' draggable='false'></span></td>";
} else {

View file

@ -17,6 +17,7 @@
var metaverseServers = [];
var SETTING_METAVERSE_TO_FETCH = "placesAppMetaverseToFetch";
var SETTING_PINNED_METAVERSE = "placesAppPinnedMetaverse";
var REQUEST_TIMEOUT = 10000; //10 seconds
var httpRequest = null;
var placesData;
@ -183,6 +184,11 @@
for (var i = 0; i < metaverseServers.length; i++ ) {
if (metaverseServers[i].fetch === true) {
extractedData = getContent(metaverseServers[i].url + "/api/v1/places?status=online" + "&acash=" + Math.floor(Math.random() * 999999));
if (extractedData === "") {
metaverseServers[i].error = true;
} else {
metaverseServers[i].error = false;
}
try {
placesData = JSON.parse(extractedData);
processData(metaverseServers[i]);
@ -326,6 +332,10 @@
function getContent(url) {
httpRequest = new XMLHttpRequest();
httpRequest.open("GET", url, false); // false for synchronous request
httpRequest.timeout = REQUEST_TIMEOUT;
httpRequest.ontimeout=function(){
return "";
};
httpRequest.send( null );
return httpRequest.responseText;
}