Skip to content

YadYehuda/Larapush

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Server and client-side code

Results on browser

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:

  1. Use 'before' => 'sessionRemove' wherever you perform a logout action.
  2. 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().

Use of Larapush filters

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


  1. A logging (Monolog) system
  2. Client-to-client websocket communication with server authorization
  3. Automatic channel(s) subscription on joining routes
  4. ...and really open to any suggestion/contribution!! Please, ask!

About

WebSocket and Push server for Laravel 4

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%