ReverbServiceProvider
class ReverbServiceProvider extends ServiceProvider
Properties
| int | $priority | The registration priority for this provider. |
from ServiceProvider |
| protected array | $bootingCallbacks | All of the registered booting callbacks. |
from ServiceProvider |
| protected array | $bootedCallbacks | All of the registered booted callbacks. |
from ServiceProvider |
| static array | $publishes | The paths that should be published. |
from ServiceProvider |
| static array | $publishGroups | The paths that should be published by group. |
from ServiceProvider |
| static protected array | $publishableMigrationPaths | The migration paths available for publishing. |
from ServiceProvider |
| static array<string, string> | $optimizeCommands | Commands that should be run during the "optimize" command. |
from ServiceProvider |
| static array<string, string> | $optimizeClearCommands | Commands that should be run during the "optimize:clear" command. |
from ServiceProvider |
| static array<string, string> | $reloadCommands | Commands that should be run during the "reload" command. |
from ServiceProvider |
Methods
Determine whether this provider should be registered and booted.
Register any application services.
Register a booting callback to be run before the "boot" method is called.
Merge the given configuration with the existing configuration.
Get configuration arrays whose entries should be merged by name.
Replace the given configuration with the existing configuration recursively.
Load the given routes file if routes are not already cached.
Register a view file namespace.
Register the given view components with a custom prefix.
Register a translation file namespace.
Register a JSON translation file path.
Register database migration paths.
Setup an after resolving listener, or fire immediately if already resolved.
Register migration paths to be published by the publish command.
Register paths to be published by the publish command.
Ensure the publish array for the service provider is initialized.
Add a publish group / tag to the service provider.
Get the paths to publish.
Get the paths for the provider or group (or both).
Get the paths for the provider and group.
Get the service providers available for publishing.
Get the migration paths available for publishing.
Add a provider to the bootstrap provider configuration file.
Remove a provider from the bootstrap provider file.
Register commands that should run on "optimize".
Register commands that should run on "reload".
Get a short descriptive key for the current service provider.
Replace the bootstrap provider file without exposing partial contents.
Get the default providers for a Hypervel application.
Register the Reverb WebSocket server in the server configuration.
Register the isolated Reverb router singleton.
Bootstrap any application services.
Register periodic tasks for connection cleanup and table monitoring.
Register the pipe message listener for intra-node broadcast fan-out.
Register the graceful shutdown handler for worker exit.
Drain all active WebSocket connections on this worker.
Disconnect the Redis pub/sub subscriber if scaling is enabled.
Flush any buffered webhook events to the queue.
Check Swoole Table capacity and log a warning if nearing the limit.
Check a Swoole Table's capacity and log a warning if above 80%.
Recover stale webhook batch processing keys from crashed flush jobs.
Details
in
ServiceProvider at line 83
__construct(Application $app)
No description
in
ServiceProvider at line 97
bool
isEnabled()
Determine whether this provider should be registered and booted.
Hypervel-specific extension (not in Laravel). Override on a subclass to gate registration on runtime config / env / feature flags. When this returns false the provider is instantiated but neither register() nor boot() is called, its bindings/singletons properties are not processed, and it is not tracked in the application's provider list.
at line 59
void
register()
Register any application services.
in
ServiceProvider at line 112
void
booting(Closure $callback)
Register a booting callback to be run before the "boot" method is called.
in
ServiceProvider at line 120
void
booted(Closure $callback)
Register a booted callback to be run after the "boot" method is called.
in
ServiceProvider at line 128
void
callBootingCallbacks()
Call the registered booting callbacks.
in
ServiceProvider at line 138
void
callBootedCallbacks()
Call the registered booted callbacks.
in
ServiceProvider at line 153
protected void
mergeConfigFrom(string $path, string $key)
Merge the given configuration with the existing configuration.
Top-level keys use shallow merge (app values override package defaults). Keys declared in mergeableOptions() get an additional one-level-deeper merge so the app can add entries to collection arrays (stores, connections, guards, etc.) without losing the package's default entries.
in
ServiceProvider at line 196
protected array
mergeableOptions(string $name)
Get configuration arrays whose entries should be merged by name.
Override this in a package service provider to list nested configuration arrays whose entries are named. Application entries replace package entries with the same name, while package entries not defined by the application remain. Nested arrays not listed here are replaced completely.
in
ServiceProvider at line 204
protected void
replaceConfigRecursivelyFrom(string $path, string $key)
Replace the given configuration with the existing configuration recursively.
in
ServiceProvider at line 229
protected void
loadRoutesFrom(string $path)
Load the given routes file if routes are not already cached.
in
ServiceProvider at line 239
protected void
loadViewsFrom(array|string $path, string $namespace)
Register a view file namespace.
in
ServiceProvider at line 258
protected void
loadViewComponentsAs(string $prefix, array $components)
Register the given view components with a custom prefix.
in
ServiceProvider at line 274
protected void
loadTranslationsFrom(string $path, string|null $namespace = null)
Register a translation file namespace.
in
ServiceProvider at line 284
protected void
loadJsonTranslationsFrom(string $path)
Register a JSON translation file path.
in
ServiceProvider at line 294
protected void
loadMigrationsFrom(array|string $paths)
Register database migration paths.
in
ServiceProvider at line 308
protected void
callAfterResolving(string $name, Closure $callback)
Setup an after resolving listener, or fire immediately if already resolved.
in
ServiceProvider at line 320
protected void
publishesMigrations(array $paths, mixed $groups = null)
Register migration paths to be published by the publish command.
in
ServiceProvider at line 337
protected void
publishes(array $paths, mixed $groups = null)
Register paths to be published by the publish command.
in
ServiceProvider at line 351
protected void
ensurePublishArrayInitialized(string $class)
Ensure the publish array for the service provider is initialized.
in
ServiceProvider at line 361
protected void
addPublishGroup(string $group, array $paths)
Add a publish group / tag to the service provider.
in
ServiceProvider at line 376
static array
pathsToPublish(string|null $provider = null, string|null $group = null)
Get the paths to publish.
in
ServiceProvider at line 393
static protected array|null
pathsForProviderOrGroup(string|null $provider, string|null $group)
Get the paths for the provider or group (or both).
Returns null when no filter is specified, allowing caller to fall back to all paths. Returns empty array when a filter is specified but not found.
in
ServiceProvider at line 413
static protected array
pathsForProviderAndGroup(string $provider, string $group)
Get the paths for the provider and group.
in
ServiceProvider at line 425
static array
publishableProviders()
Get the service providers available for publishing.
in
ServiceProvider at line 433
static array
publishableMigrationPaths()
Get the migration paths available for publishing.
in
ServiceProvider at line 441
static array
publishableGroups()
Get the groups available for publishing.
in
ServiceProvider at line 449
static bool
addProviderToBootstrapFile(string $provider, string|null $path = null)
Add a provider to the bootstrap provider configuration file.
in
ServiceProvider at line 487
static bool
removeProviderFromBootstrapFile(string|array $providersToRemove, string|null $path = null, bool $strict = false)
Remove a provider from the bootstrap provider file.
in
ServiceProvider at line 529
protected void
optimizes(string|null $optimize = null, string|null $clear = null, string|null $key = null)
Register commands that should run on "optimize".
in
ServiceProvider at line 545
protected void
reloads(string $reload, string|null $key = null)
Register commands that should run on "reload".
in
ServiceProvider at line 555
protected string
getProviderKey(string|null $key = null)
Get a short descriptive key for the current service provider.
in
ServiceProvider at line 574
void
commands(array $commands)
Register the package's custom Artisan commands.
in
ServiceProvider at line 590
protected void
aspects(string|array $aspects)
Register AOP aspects.
Reads $classes and $priority from each aspect class's default
property values via reflection (without instantiating the aspect).
Must be called during register(), before boot().
in
ServiceProvider at line 622
protected void
classMap(array $map)
Register class map overrides.
Applies entries to the Composer autoloader immediately. Fails hard if any target class is already loaded. Must be called during register(), before the target class is autoloaded.
in
ServiceProvider at line 630
static protected void
replaceBootstrapProviderFile(string $path, string $content)
Replace the bootstrap provider file without exposing partial contents.
in
ServiceProvider at line 652
static DefaultProviders
defaultProviders()
Get the default providers for a Hypervel application.
in
ServiceProvider at line 660
static void
flushState()
Flush all static state.
at line 114
protected void
registerWebSocketServer()
Register the Reverb WebSocket server in the server configuration.
Appends a WebSocket server entry to server.servers so Swoole binds
the Reverb port alongside the main HTTP server. This is an intentional
register-time config mutation: it must run before ServerStartCommand
reads server.servers and before workers or coroutines exist. Do not
move this into boot/runtime code; config is process-global in Swoole
workers.
at line 145
protected array
resolveServerSettings(TlsOptions $tls)
Resolve Swoole settings for the Reverb server.
at line 159
protected void
registerReverbRouter()
Register the isolated Reverb router singleton.
Routes are registered later in boot() so config overrides (e.g. path prefix) are applied before route registration.
at line 170
protected void
registerRoutes(ReverbRouter $router)
Register all Reverb routes on the isolated router.
at line 192
void
boot()
Bootstrap any application services.
at line 218
protected void
registerPeriodicTasks()
Register periodic tasks for connection cleanup and table monitoring.
at line 243
protected void
registerPipeMessageListener()
Register the pipe message listener for intra-node broadcast fan-out.
at line 292
protected void
registerShutdownHandler()
Register the graceful shutdown handler for worker exit.
Runs during onWorkerExit while the event loop is still active, so coroutine-dependent operations (Redis pub/sub for scaling, webhook dispatch) still work. This fires before WORKER_EXIT is resumed, meaning periodic timers and the Redis subscriber are still running — the drain does not conflict with them.
at line 330
void
drainConnections()
Drain all active WebSocket connections on this worker.
Atomically takes each connection from the registry, runs Reverb cleanup (channel unsubscribe, slot release, presence events), then closes the transport with a 1001 Going Away close code.
at line 354
protected void
disconnectScalingSubscriber()
Disconnect the Redis pub/sub subscriber if scaling is enabled.
at line 369
protected void
flushWebhookBuffers()
Flush any buffered webhook events to the queue.
Reduces recovery delay from 60s to immediate by scheduling flush jobs before the worker dies.
at line 397
protected void
checkTableCapacity()
Check Swoole Table capacity and log a warning if nearing the limit.
at line 419
protected void
checkSwooleTableUsage(Table $table, string $messageFormat)
Check a Swoole Table's capacity and log a warning if above 80%.
at line 447
protected void
recoverStaleWebhookBatches()
Recover stale webhook batch processing keys from crashed flush jobs.
Iterates all apps with batching enabled and checks for orphaned processing hashes. If recovered, schedules an immediate flush.