PHPackages                             cednore/boom-controller - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. cednore/boom-controller

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

cednore/boom-controller
=======================

Booming server control interface for Laravel

1.0.0(4y ago)57MITPHPPHP ^7|^8

Since Apr 11Pushed 4y ago1 watchersCompare

[ Source](https://github.com/cednore/boom-controller)[ Packagist](https://packagist.org/packages/cednore/boom-controller)[ Docs](http://github.com/cednore/boom-controller.git)[ RSS](/packages/cednore-boom-controller/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (3)Versions (10)Used By (0)

boom-controller
===============

[](#boom-controller)

> Booming server control interface for Laravel

❗ IMPORTANT: This project is not actively maintained.`boom-controller` is a [composer package](https://packagist.org/packages/cednore/boom-controller) for Laravel applications to control [`boom-server`](https://www.npmjs.com/package/boom-server) microservice.

See [`boom-demo`](https://github.com/cednore/boom-demo) for example usage of this project.

> Currently, this project supports only `socket.io:^2.2.0`, `laravel:^5.7|^6.0` and `php:^7|^8`.

Features
--------

[](#features)

1. Expose endpoints to listen `socket.io` events coming from frontend clients
2. PHP class to provide same interface as `socket.io`'s Node.js server (for easy porting of legacy applications)
3. Facade for smooth syntax
4. Authentication of traffic between `boom-server` and API
5. State machine over MySQL table to share list of sockets

Installation
------------

[](#installation)

```
# Install cednore/boom-controller package
composer require cednore/boom-controller

# Create config, route and default controller for root namespace
php artisan boom:init

# Start development server
php artisan serve
```

Emit cheatsheet (comparison between legacy JavaScript syntax and new PHP syntax)
--------------------------------------------------------------------------------

[](#emit-cheatsheet-comparison-between-legacy-javascript-syntax-and-new-php-syntax)

### Basic emit

[](#basic-emit)

```
socket.emit(/* ... */);
```

```
$request->socket->emit(/* ... */);
```

### To all clients in the current namespace except the sender

[](#to-all-clients-in-the-current-namespace-except-the-sender)

```
socket.broadcast.emit(/* ... */);
```

```
$request->socket->broadcast->emit(/* ... */);
```

### To all clients in room1 except the sender

[](#to-all-clients-in-room1-except-the-sender)

```
socket.to('room1').emit(/* ... */);
```

```
$request->socket->to('room1')->emit(/* ... */);
```

### To all clients in room1 and/or room2 except the sender

[](#to-all-clients-in-room1-andor-room2-except-the-sender)

```
socket.to('room1').to('room2').emit(/* ... */);
```

```
$request->socket->to('room1')->to('room2')->emit(/* ... */);
```

### To all clients in room1

[](#to-all-clients-in-room1)

```
io.in('room1').emit(/* ... */);
```

```
use Boom\Facades\Boom as IO;
IO::in('room1')->emit(/* ... */);
```

### To all clients in namespace "myNamespace"

[](#to-all-clients-in-namespace-mynamespace)

```
io.of('myNamespace').emit(/* ... */);
```

```
use Boom\Facades\Boom as IO;
IO::of('myNamespace')->emit(/* ... */);
```

### To all clients in room1 in namespace "myNamespace"

[](#to-all-clients-in-room1-in-namespace-mynamespace)

```
io.of('myNamespace').to('room1').emit(/* ... */);
```

```
use Boom\Facades\Boom as IO;
IO::of('myNamespace')->to('room1')->emit(/* ... */);
```

### To individual socketid (private message)

[](#to-individual-socketid-private-message)

```
io.to(socketId).emit(/* ... */);
```

```
use Boom\Facades\Boom as IO;
IO::to($socketId)->emit(/* ... */);
```

### To all clients on this node (when using multiple nodes)

[](#to-all-clients-on-this-node-when-using-multiple-nodes)

```
io.local.emit(/* ... */);
```

```
use Boom\Facades\Boom as IO;
IO::$local->emit(/* ... */);
```

### To all connected clients

[](#to-all-connected-clients)

```
io.emit(/* ... */);
```

```
use Boom\Facades\Boom as IO;
IO::emit(/* ... */);
```

### Without compression

[](#without-compression)

```
socket.compress(false).emit(/* ... */);
```

```
$request->socket->compress(false)->emit(/* ... */);
```

### A message that might be dropped if the low-level transport is not writable

[](#a-message-that-might-be-dropped-if-the-low-level-transport-is-not-writable)

```
socket.volatile.emit(/* ... */);
```

```
$request->socket->volatile->emit(/* ... */);
```

Configuration
-------------

[](#configuration)

The file `config/boom.php` contains an array of configurations. See code comments inside this file for detailed explanations.

Artisan commands
----------------

[](#artisan-commands)

### Command: `boom:init`

[](#command-boominit)

Initialize boom controller.

Usage:

```
php artisan boom:init [options]
```

Options:

```
--force  Overwrite any existing files.
```

### Command: `boom:make:nsp`

[](#command-boommakensp)

Make a new socket.io namespace handler.

Usage:

```
php artisan boom:make:nsp [options] [--]
```

Arguments:

```
name  Name of new namespace to create.
```

Options:

```
--force  Overwrite any existing files.
```

Cloning
-------

[](#cloning)

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes. See [Installation](#installation) chapter for notes on how to use this project on a live system.

```
# Clone this repo
git clone git@github.com:cednore/boom-controller.git
cd boom-controller
```

Project roadmaps
----------------

[](#project-roadmaps)

1. Testing desperately needed ;-)
2. Resourceful documentation; Changelog, contribution guide, issue/PR templates, GitHub releases, dedicated documentation website
3. Version compatibility check between `boom-controller` and `boom-server`
4. CI/CD pipelines for building, testing and publishing
5. Support higher `socket.io` and `laravel` versions
6. More smooth controller syntax
7. Detailed error handling
8. Memcached driver
9. More stable db connection
10. Dockerization of microservice
11. Combine `boom-server` and `boom-controller` in a single monorepo

License
-------

[](#license)

This project is licensed under the MIT license. See full contents at [`LICENSE`](LICENSE) file.

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

9

Last Release

1496d ago

Major Versions

0.1.7 → 1.0.02022-04-11

### Community

Maintainers

![](https://www.gravatar.com/avatar/951c0a93b64d22d9f9f9401741f1bb937a508d576acf1bf71786a1b81abdb67b?d=identicon)[cednore](/maintainers/cednore)

---

Top Contributors

[![cednore](https://avatars.githubusercontent.com/u/7719701?v=4)](https://github.com/cednore "cednore (23 commits)")

---

Tags

phplaravelSocket.ioboomboom-controllerboom-server

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/cednore-boom-controller/health.svg)

```
[![Health](https://phpackages.com/badges/cednore-boom-controller/health.svg)](https://phpackages.com/packages/cednore-boom-controller)
```

###  Alternatives

[grumpydictator/firefly-iii

Firefly III: a personal finances manager.

22.8k69.3k](/packages/grumpydictator-firefly-iii)[stevebauman/location

Retrieve a user's location by their IP Address

1.3k7.6M65](/packages/stevebauman-location)[appstract/laravel-opcache

PHP OPcache Artisan commands for Laravel.

1.4k4.9M7](/packages/appstract-laravel-opcache)[gehrisandro/tailwind-merge-laravel

TailwindMerge for Laravel merges multiple Tailwind CSS classes by automatically resolving conflicts between them

341682.2k18](/packages/gehrisandro-tailwind-merge-laravel)[backpack/basset

Dead-simple way to load CSS or JS assets only once per page, when using Laravel 10+.

202832.4k6](/packages/backpack-basset)[firefly-iii/data-importer

Firefly III Data Import Tool.

7545.8k](/packages/firefly-iii-data-importer)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
