| Autor | Zpráva | ||
|---|---|---|---|
| leorond Profil |
Ahoj, na VPS mi funguje aplikace která využívá port 55903 na localhostu a já bych potřeboval kontrolovat zda je aplikace online aby v případě pádu aplikace nebo odstavení jsem mohl na webových stránkách vypsat status OFFLINE.
Vytvořil jsem si proto script ale ten se stále připojuje dokola a zapříčiní pád aplikace, při tom se ukazuje v logách aplikace tento zápis error-L1 : CloseClient INVALID_SOCKET 12:28:51 (6587)logout : [127.0.0.1] 12:28:51 Response error after connection causes conclusion (6587)()()(127.0.0.1) error-L1 : CloseClient INVALID_SOCKET 12:28:51 (6588)logout : [127.0.0.1] Můj script $GameServer['check'] = "1";
if($check = fsockopen('127.0.0.1', '55903', $ERROR_NO,$ERROR_STR, (float)0.5) and $GameServer['check'] == 1)
{
fclose($check);
$GS_Status = "<font color='#A0FFA0'><b>ONLINE</b></font>";
}
else
{
$GS_Status = "<font color='red'><b>OFFLINE</b></font>";
}Nevíte prosím kde by mohla být chyba? |
||
| Davex Profil |
#2 · Zasláno: 25. 2. 2016, 18:59:51
leorond:
Nebylo by lepší na VPS nastavit monitorování té aplikace pomocí monit, aby se po pádu zrestartovala a nebylo nutné zobrazovat, že je nedostupná? |
||
| leorond Profil |
#3 · Zasláno: 25. 2. 2016, 19:25:14
To by určitě šlo ale pouze v situaci kdy by server padl a od toho mám auto start který pokud zjistí že server není aktivní tak ho restartuje.
Ale pokud chci ověřovat zda je server ONLINE a potřebuji to dát uživatelům vědět tak je pro mne jednoduší když se na webu zobrazí rudě OFFLINE než každému zvlášť odepisovat důvod proč se nelze připojit k serveru. Jelikož lidi neradi čtou novinky a informace. |
||
| leorond Profil |
Ještě bych chtěl dodat že script funguje dobře ale on mi normálně zablokuje port a nikdo se k aplikaci nedostane.
Zkusil jsem ho nahradit funkcí ale je to úplně stejné. function ErrorHandler($errno, $errmsg, $filename, $linenum, $vars)
{
}
function CheckPortStatus($Ip, $Port, $Timeout = 0.5)
{
set_error_handler('ErrorHandler'); // Disable failed connection warning
//error_reporting(0);
if($Fp1 = fsockopen($Ip, $Port, $ERROR_NO, $ERROR_STR, (float)$Timeout))
{
fclose($Fp1);
return(TRUE);
} else
{
//echo($ERROR_NO.','.$ERROR_STR);
return(FALSE);
}
restore_error_handler();
}
if(CheckPortStatus('localhost', 55903))
{
echo('Online');
}
else
{
echo('Offline');
} |
||
|
Časová prodleva: 11 let
|
|||
0