redbaron76/larapush
a Ratchet and ZMQ implementation for Laravel 4
1,048
25
| Install | |
|---|---|
composer require redbaron76/larapush |
|
| Latest Version: | 0.1 |
| PHP: | >=5.4.0 |
| License: | MIT |
| Last Updated: | Sep 9, 2014 |
| Links: | GitHub · Packagist |
Maintainer: Redbaron76
This package is still UNDER DEVELOPMENT but feel free to try it as you wish.
Larapush - WebSocket and Push server
a Ratchet and ZMQ implementation for Laravel 4.
ZMQ is required
Make sure to have ZMQ installed on your system before to try it. Install guide
How to install this package
// composer.json
{
"require": {
"redbaron76/larapush": "dev-master"
}
}
// app/config/app.php
'providers' => array(
...
'Redbaron76\Larapush\LarapushServiceProvider',
),
Then run composer update to install the new package.
How to use
1) Start the Larapush server
From the console just type php artisan larapush:serve (--port=8080) to rise the WebSocket/Ratchet server up.
2) Use the Larapush facade in your routes to trigger events server-side
// app/routes.php
Route::any('profile/{nickname}', ['as' => 'profile', function($nickname)
{
Larapush::send(['message' => 'I watch you, '.$nickname.'!'], ['profileChannel'], 'profile.visit');
return View::make('some.view');
}]);
3) Subscribe your client to channels and listen for events in the client-side


4) Laravel - Ratchet session sync
In order to have Laravel session synced with the Ratchet server one, YOU MUST use specific Larapush filters in your routes:
- Use
'before' => 'sessionRemove'wherever you perform a logout action. - Use
'after' => 'sessionSync'wherever you perform a login action and in any authenticated route.
This will maintain your sessions in sync and you'll be able to perform a target Larapush::send().

Larapush.js - Pub/Sub js lib for Larapush
In order to make your dev life easier with Larapush, please give Larapush.js a try.
Follow my Twitter account @FFumis for any update.
TODO
- A logging (Monolog) system
- Client-to-client websocket communication with server authorization
- Automatic channel(s) subscription on joining routes
- ...and really open to any suggestion/contribution!! Please, ask!