diff --git a/README.md b/README.md index d95c489..75b8d5e 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Laravel Websockets 🚀 +# Laravel WebSockets 🚀 [![Latest Version on Packagist](https://img.shields.io/packagist/v/beyondcode/laravel-websockets.svg?style=flat-square)](https://packagist.org/packages/beyondcode/laravel-websockets) [![Build Status](https://img.shields.io/travis/beyondcode/laravel-websockets/master.svg?style=flat-square)](https://travis-ci.org/beyondcode/laravel-websockets) @@ -18,7 +18,7 @@ composer require beyondcode/laravel-websockets ## Usage ``` php -$skeleton = new BeyondCode\LaravelWebsockets(); +$skeleton = new BeyondCode\LaravelWebSockets(); echo $skeleton->echoPhrase('Hello, BeyondCode!'); ``` diff --git a/composer.json b/composer.json index de17312..655ce7e 100644 --- a/composer.json +++ b/composer.json @@ -23,7 +23,10 @@ ], "require": { "php": "^7.1", - "illuminate/http": "5.6.*|5.7.*" + "cboden/ratchet": "^0.4.1", + "illuminate/support": "5.6.*|5.7.*", + "illuminate/http": "5.6.*|5.7.*", + "illuminate/routing": "5.6.*|5.7.*" }, "require-dev": { "larapack/dd": "^1.0", @@ -31,12 +34,12 @@ }, "autoload": { "psr-4": { - "BeyondCode\\LaravelWebsockets\\": "src" + "BeyondCode\\LaravelWebSockets\\": "src" } }, "autoload-dev": { "psr-4": { - "BeyondCode\\LaravelWebsockets\\Tests\\": "tests" + "BeyondCode\\LaravelWebSockets\\Tests\\": "tests" } }, "scripts": { @@ -50,8 +53,11 @@ "extra": { "laravel": { "providers": [ - "BeyondCode\\LaravelWebsockets\\LaravelWebsocketsServiceProvider" - ] + "BeyondCode\\LaravelWebSockets\\LaravelWebSocketsServiceProvider" + ], + "aliases": { + "WebSocketRouter": "BeyondCode\\LaravelWebSockets\\Facades\\WebSocketRouter" + } } } } diff --git a/src/Exceptions/InvalidWebSocketController.php b/src/Exceptions/InvalidWebSocketController.php new file mode 100644 index 0000000..4f8591f --- /dev/null +++ b/src/Exceptions/InvalidWebSocketController.php @@ -0,0 +1,11 @@ +app->singleton('websockets.router', function() { + return new Router(); + }); + } +} diff --git a/src/LaravelWebsocketsServiceProvider.php b/src/LaravelWebsocketsServiceProvider.php deleted file mode 100644 index 2819348..0000000 --- a/src/LaravelWebsocketsServiceProvider.php +++ /dev/null @@ -1,24 +0,0 @@ -routes = new RouteCollection; + } + + public function addRoute($uri, $action) + { + if (! is_subclass_of($action, WebSocketController::class)) { + throw InvalidWebSocketController::withController($action); + } + + $this->routes->add($uri, $this->getRoute($uri, $action)); + } + + protected function getRoute($uri, $action) : Route + { + return new Route($uri, ['_controller' => app($action)], [], [], null, [], ['GET']); + } +} \ No newline at end of file diff --git a/src/WebSocketController.php b/src/WebSocketController.php new file mode 100644 index 0000000..bffe39a --- /dev/null +++ b/src/WebSocketController.php @@ -0,0 +1,48 @@ +