- fixed some "map sync" bugs with WebSocket installations

- improved WebSocket info on `/setup` page (new live stats, new log viewer,..)
This commit is contained in:
Mark Friedrich
2019-07-02 20:04:16 +02:00
parent 176cd41a49
commit 437fdf0db9
21 changed files with 574 additions and 131 deletions

View File

@@ -1557,23 +1557,29 @@ class Setup extends Controller {
'class' => 'txt-color-danger'
];
$webSocketStatus = [
$statusWeb = [
'type' => 'danger',
'label' => 'INIT CONNECTION…',
'class' => 'txt-color-danger'
];
$statsTcp = [
'startup' => 0,
'connections' => 0,
'maxConnections' => 0
];
$statsTcp = false;
$statsWeb = false;
$setStats = function(array $stats) use (&$statsTcp, &$statsWeb) {
if(!empty($stats['tcpSocket'])){
$statsTcp = $stats['tcpSocket'];
}
if(!empty($stats['webSocket'])){
$statsWeb = $stats['webSocket'];
}
};
// ping TCP Socket with "healthCheck" task
$f3->webSocket(['timeout' => $ttl])
->write($task, $healthCheckToken)
->then(
function($payload) use ($task, $healthCheckToken, &$statusTcp, &$statsTcp) {
function($payload) use ($task, $healthCheckToken, &$statusTcp, $setStats) {
if(
$payload['task'] == $task &&
$payload['load'] == $healthCheckToken
@@ -1581,24 +1587,26 @@ class Setup extends Controller {
$statusTcp['type'] = 'success';
$statusTcp['label'] = 'PING OK';
$statusTcp['class'] = 'txt-color-success';
// statistics (e.g. current connection count)
if(!empty($payload['stats'])){
$statsTcp = $payload['stats'];
}
}else{
$statusTcp['type'] = 'warning';
$statusTcp['label'] = is_string($payload['load']) ? $payload['load'] : 'INVALID RESPONSE';
$statusTcp['class'] = 'txt-color-warning';
}
// statistics (e.g. current connection count)
$setStats((array)$payload['stats']);
},
function($payload) use (&$statusTcp) {
function($payload) use (&$statusTcp, $setStats) {
$statusTcp['label'] = $payload['load'];
// statistics (e.g. current connection count)
$setStats((array)$payload['stats']);
});
$socketInformation = [
'tcpSocket' => [
'label' => 'Socket (intern) [TCP]',
'label' => 'TCP-Socket (intern)',
'icon' => 'fa-exchange-alt',
'status' => $statusTcp,
'stats' => $statsTcp,
'data' => [
@@ -1620,15 +1628,17 @@ class Setup extends Controller {
'check' => !empty( $ttl )
],[
'label' => 'uptime',
'value' => Config::formatTimeInterval($statsTcp['startup']),
'value' => Config::formatTimeInterval($statsTcp['startup'] ? : 0),
'check' => $statsTcp['startup'] > 0
]
],
'token' => $healthCheckToken
],
'webSocket' => [
'label' => 'WebSocket (clients) [HTTP]',
'status' => $webSocketStatus,
'label' => 'Web-Socket',
'icon' => 'fa-random',
'status' => $statusWeb,
'stats' => $statsWeb,
'data' => [
[
'label' => 'URI',