Fix/Feature : Fixing ability to add custom handlers to a route by adding a custom routes method to the router (#150)

Fixing Coding Standards

Fixing Coding Standards
This commit is contained in:
Luke Policinski 2019-05-11 02:46:25 -04:00 committed by Marcel Pociot
parent 5e84ef1ddc
commit 556f4338e8
2 changed files with 19 additions and 1 deletions

View File

@ -44,6 +44,7 @@ class StartWebSocketServer extends Command
->configureMessageLogger() ->configureMessageLogger()
->configureConnectionLogger() ->configureConnectionLogger()
->registerEchoRoutes() ->registerEchoRoutes()
->registerCustomRoutes()
->startWebSocketServer(); ->startWebSocketServer();
} }
@ -110,6 +111,13 @@ class StartWebSocketServer extends Command
return $this; return $this;
} }
protected function registerCustomRoutes()
{
WebSocketsRouter::customRoutes();
return $this;
}
protected function startWebSocketServer() protected function startWebSocketServer()
{ {
$this->info("Starting the WebSocket server on port {$this->option('port')}..."); $this->info("Starting the WebSocket server on port {$this->option('port')}...");

View File

@ -3,6 +3,7 @@
namespace BeyondCode\LaravelWebSockets\Server; namespace BeyondCode\LaravelWebSockets\Server;
use Ratchet\WebSocket\WsServer; use Ratchet\WebSocket\WsServer;
use Illuminate\Support\Collection;
use Symfony\Component\Routing\Route; use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection; use Symfony\Component\Routing\RouteCollection;
use Ratchet\WebSocket\MessageComponentInterface; use Ratchet\WebSocket\MessageComponentInterface;
@ -18,10 +19,12 @@ class Router
{ {
/** @var \Symfony\Component\Routing\RouteCollection */ /** @var \Symfony\Component\Routing\RouteCollection */
protected $routes; protected $routes;
protected $customRoutes;
public function __construct() public function __construct()
{ {
$this->routes = new RouteCollection; $this->routes = new RouteCollection;
$this->customRoutes = new Collection();
} }
public function getRoutes(): RouteCollection public function getRoutes(): RouteCollection
@ -39,6 +42,13 @@ class Router
$this->get('/apps/{appId}/channels/{channelName}/users', FetchUsersController::class); $this->get('/apps/{appId}/channels/{channelName}/users', FetchUsersController::class);
} }
public function customRoutes()
{
$this->customRoutes->each(function ($action, $uri) {
$this->get($uri, $action);
});
}
public function get(string $uri, $action) public function get(string $uri, $action)
{ {
$this->addRoute('GET', $uri, $action); $this->addRoute('GET', $uri, $action);
@ -70,7 +80,7 @@ class Router
throw InvalidWebSocketController::withController($action); throw InvalidWebSocketController::withController($action);
} }
$this->get($uri, $action); $this->customRoutes->put($uri, $action);
} }
public function addRoute(string $method, string $uri, $action) public function addRoute(string $method, string $uri, $action)