laravel-websockets/src/LaravelWebSocketsServicePro...

64 lines
1.8 KiB
PHP
Raw Normal View History

2018-11-20 10:32:56 +00:00
<?php
namespace BeyondCode\LaravelWebSockets;
2018-11-23 23:06:28 +00:00
use Illuminate\Support\Facades\Route;
2018-11-24 00:25:40 +00:00
use BeyondCode\LaravelWebSockets\ClientProviders\ClientProvider;
2018-11-20 10:32:56 +00:00
use Illuminate\Support\ServiceProvider;
2018-11-23 23:06:28 +00:00
use BeyondCode\LaravelWebSockets\LaravelEcho\WebSocket\ConsoleServer;
2018-11-21 11:13:40 +00:00
use BeyondCode\LaravelWebSockets\LaravelEcho\Pusher\Channels\ChannelManager;
2018-11-20 10:32:56 +00:00
class LaravelWebSocketsServiceProvider extends ServiceProvider
{
public function boot()
{
2018-11-22 22:55:39 +00:00
$this->publishes([
2018-11-24 00:25:40 +00:00
__DIR__.'/../config/websockets.php' => base_path('config/websockets.php'),
2018-11-22 22:55:39 +00:00
], 'config');
2018-11-23 23:06:28 +00:00
$this->registerRoutes();
$this->loadViewsFrom(__DIR__.'/../resources/views/', 'websockets');
2018-11-20 10:51:00 +00:00
$this->commands([
Console\StartWebSocketServer::class,
]);
2018-11-20 10:32:56 +00:00
}
2018-11-23 23:06:28 +00:00
protected function registerRoutes()
{
Route::group($this->routeConfiguration(), function () {
$this->loadRoutesFrom(__DIR__.'/Http/routes.php');
});
}
protected function routeConfiguration()
{
return [
'namespace' => 'BeyondCode\LaravelWebSockets\Http\Controllers',
'prefix' => config('websockets.path'),
];
}
2018-11-20 10:32:56 +00:00
public function register()
{
2018-11-24 00:25:40 +00:00
$this->mergeConfigFrom(__DIR__.'/../config/websockets.php', 'websockets');
2018-11-22 22:55:39 +00:00
2018-11-20 10:32:56 +00:00
$this->app->singleton('websockets.router', function() {
return new Router();
});
2018-11-21 23:25:24 +00:00
2018-11-21 11:13:40 +00:00
$this->app->singleton(ChannelManager::class, function() {
return new ChannelManager();
});
2018-11-24 00:25:40 +00:00
$this->app->singleton(ClientProvider::class, function() {
return app(config('websockets.client_provider'));
});
2018-11-23 23:06:28 +00:00
$this->app->singleton(ConsoleServer::class, function() {
return new ConsoleServer(new ChannelManager());
});
2018-11-20 10:32:56 +00:00
}
}