Add support for overriding stats logger's base URL

This commit is contained in:
Francis Lavoie 2019-02-21 12:11:37 -05:00
parent 53691ce8a5
commit 70ffe41c86
2 changed files with 22 additions and 1 deletions

View File

@ -80,6 +80,14 @@ return [
*/ */
'delete_statistics_older_than_days' => 60, 'delete_statistics_older_than_days' => 60,
/*
* By default, the websockets server attempts to connect to whatever
* your APP_URL is set to. If running in a more complex environment,
* you may wish to override the base URL for internal requests to
* allow statistics to be collected.
*/
'base_url_override' => null,
/* /*
* Use an DNS resolver to make the requests to the statistics logger * Use an DNS resolver to make the requests to the statistics logger
* default is to resolve everything to 127.0.0.1. * default is to resolve everything to 127.0.0.1.

View File

@ -65,6 +65,19 @@ class HttpStatisticsLogger implements StatisticsLogger
return $this->statistics[$appId]; return $this->statistics[$appId];
} }
protected function getUrl(): string
{
$action = [WebSocketStatisticsEntriesController::class, 'store'];
$url_override = config('websockets.statistics.base_url_override', null);
if ($url_override !== null) {
return $url_override.action($action, [], false);
}
return action($action);
}
public function save() public function save()
{ {
foreach ($this->statistics as $appId => $statistic) { foreach ($this->statistics as $appId => $statistic) {
@ -79,7 +92,7 @@ class HttpStatisticsLogger implements StatisticsLogger
$this $this
->browser ->browser
->post( ->post(
action([WebSocketStatisticsEntriesController::class, 'store']), $this->getUrl(),
['Content-Type' => 'application/json'], ['Content-Type' => 'application/json'],
stream_for(json_encode($postData)) stream_for(json_encode($postData))
); );