p-sam / real-time-bundle
Real-time events from server to browsers and mobile devices
Installs: 9 935
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 3
Forks: 2
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^7.2
- ext-json: *
- ably/ably-php: ^1.0
- predis/predis: ^1.1
- ramsey/uuid: ^3.0|^4.0
- symfony/config: ^4.4|^5.0
- symfony/event-dispatcher: ^4.4|^5.0
- symfony/framework-bundle: ^4.4|^5.0
Requires (Dev)
- symfony/console: ^4.4|^5.0
Suggests
- symfony/console: If you want to use commands to interact with any channel
README
Real-time events from server to browsers and mobile devices via "channels"
Please note that this bundle makes uses of ably.io and Redis via Predis.
Installation
Install with composer:
$ composer require p-sam/real-time-bundle
Then register the bundle in the AppKernel.php
file:
public function registerBundles() { $bundles = array( // ... new SP\RealTimeBundle\SPRealTimeBundle(), // ... ); return $bundles; }
Then add the following to your routing.yml
:
sp_realtime: resource: "@SPRealTimeBundle/Controller/" type: annotation
Note: Registering the bundle and the routes are done automatically if you're using Symfony Flex
Configuration
Configure the predis
client and ably
key in your config.yml
:
sp_realtime: ably: api_key: '- ably key here -' ttl: 3600 # in seconds redis: key_prefix: 'app:' presence_check: true
Usage
From PHP
Services are provided from the bundle:
sp_real_time.sender
: Allows sending of messages to channelssp_real_time.presence
: Allow subscribing by providing tokens, and checking for presence in channels
The following events are dispatched:
sp_real_time.event.subscribe
: ASubscribeEvent
is emitted when a token is generated for a channelsp_real_time.event.message
: AMessageEvent
is emitted when a message is sent upstream to ably.io