Package Data | |
---|---|
Maintainer Username: | moura137 |
Maintainer Contact: | renato@soleon.com.br (Renato Moura) |
Package Create Date: | 2016-07-05 |
Package Last Update: | 2022-03-22 |
Language: | PHP |
License: | MIT |
Last Refreshed: | 2024-11-11 15:12:45 |
Package Statistics | |
---|---|
Total Downloads: | 26,980 |
Monthly Downloads: | 325 |
Daily Downloads: | 18 |
Total Stars: | 14 |
Total Watchers: | 3 |
Total Forks: | 4 |
Total Open Issues: | 2 |
It's an unofficial client php for SocketCluster (Is an open source realtime WebSocket framework for Node.js from socketcluster.io for PHP 5.5.9+).
You can install this package by simply run this composer command:
composer require soleon/sc-php
$optionsOrUri = 'wss://localhost:443/socketcluster/?servicekey=abc'
OR
$optionsOrUri = [
'secure' => true,
'host' => 'localhost',
'port' => '443',
'path' => '/socketcluster/',
'query' => [
'servicekey' => 'abc'
],
];
$websocket = \SocketCluster\WebSocket::factory($optionsOrUri);
$socket = new \SocketCluster\SocketCluster($websocket);
// Event Emit
$data = ['message' => 'FooBar'];
$socket->publish('CHANNEL_NAME', $data);
Then, add this service provider in your providers array [app/config/app.php]
:
SocketCluster\Providers\LaravelServiceProvider::class,
Then, add this Facade to your aliases array [app/config/app.php]
:
'SocketCluster' => SocketCluster\Laravel\SCFacade::class
Next you have to copy the configuration to your connections
array [app/config/broadcasting.php]
:
/*
* Set default broadcasting driver to socketcluster
*/
'default' => env('BROADCAST_DRIVER', 'socketcluster'),
'socketcluster' => [
'driver' => 'socketcluster',
'options' => [
'secure' => true,
'host' => 'localhost',
'port' => '443',
'path' => '/socketcluster/',
'query' => [],
],
]
Usage Laravel
SocketCluster::publish('ChannelName', ['message' => 'Test publish!!']);
With Event Listener
Add a custom broadcast event to your application example [app/events/PublishToSocketClusterEvent.php]
:
namespace App\Events;
use App\Events\Event;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
class PublishToSocketClusterEvent implements ShouldBroadcast
{
use SerializesModels
/**
* Content Message
* @var string
*/
public $message;
/**
* Construct Event
* @param string $message
*/
public function __construct($message)
{
$this->message = $message;
}
/**
* Get the channels the event should broadcast on.
* @return array
*/
public function broadcastOn()
{
return ['channelName'];
}
/**
* Get the data to send.
* @return array
*/
public function broadcastWith()
{
return [
'message' => $this->message
]
}
}
Now to publish in your application simply fire the event:
event(new App\Events\PublishToSocketClusterEvent('Test publish!!'));
Pimple is a simple PHP Dependency Injection Container
Examples of frameworks that use: Silex, Slim
Registering this service provider
$app->register(new SocketCluster\Providers\PimpleServiceProvider(), array(
'socketcluster.options' => array(
'secure' => true,
'host' => 'localhost',
'port' => '443',
'path' => '/socketcluster/',
'query' => [],
)
));
Usage Pimple
$app['socketcluster']->publish('CHANNEL_NAME', $data);
Support follows PSR-2 and PSR-4 PHP coding standards, and semantic versioning. Fork this project and make a pull request!
This project is free software distributed under the terms of the MIT License.