redbaron76 / larapush
a Ratchet and ZMQ implementation for Laravel 4
Installs: 1 046
Dependents: 0
Suggesters: 0
Security: 0
Stars: 25
Watchers: 7
Forks: 7
Open Issues: 4
Requires
- php: >=5.4.0
- cboden/ratchet: 0.3.*
- illuminate/support: 4.2.*
- react/zmq: 0.2.*|0.3.*
This package is not auto-updated.
Last update: 2024-11-05 03:59:11 UTC
README
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!