phpsir / websockets-bundle
Ratchet abstraction for Symfony 4
v2.1
2019-12-06 15:13 UTC
Requires
- php: ^7.3
- cboden/ratchet: ^0.4.1
- ratchet/pawl: ^0.3.4
- symfony/framework-bundle: ^3.4|^4.3|^5.0
This package is not auto-updated.
Last update: 2024-04-27 11:51:47 UTC
README
This small bundle is a Ratchet abstraction for Symfony 4. Just create message handlers and your server is set.
Installation
Open a command console, enter your project directory and execute:
$ composer require phpsir/websockets-bundle
Create handlers
Create services implementing HandlerInterface
:
<?php
// src/Handler/WelcomeHandler.php
namespace App\Handler;
use Ratchet\ConnectionInterface;
use RollandRock\WebsocketBundle\Client\ClientStack;
use RollandRock\WebsocketBundle\Handler\HandlerInterface;
class WelcomeHandler implements HandlerInterface
{
public static function getName(): string
{
return 'welcome';
}
public function handle(ClientStack $clientStack, ConnectionInterface $from, array $data)
{
// Handle the "welcome" message sent by $from, containing $data.
// You also have access to the whole clients stack
}
}
Configure handlers
The default port is 4242. You can change it.
Also, the default clients that will be provided will be instances of RollandRock\WebsocketBundle\Client
. You can extend it to fit your needs and specify it in the config.
rolland_rock_websocket:
port: 3240
client: App\Client\Client
Run the server
php bin/console rr:websocket:server
Send messages
The messages need to have the following format :
{
"type": "welcome",
"data": {
/* some data */
}
}
Author
Gonzalo Alonso - gonkpo@gmail.com
By
Pierre Rolland - roll.pierre@gmail.com