p-sam/real-time-bundle

Real-time events from server to browsers and mobile devices

Installs: 7 668

Dependents: 0

Suggesters: 0

Security: 0

Stars: 3

Watchers: 3

Forks: 2

Open Issues: 0

Type:symfony-bundle

1.3.0 2020-03-25 13:52 UTC

This package is auto-updated.

Last update: 2022-11-25 20:05:12 UTC


README

license-badge release-version-badge php-version-badge

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 channels
  • sp_real_time.presence: Allow subscribing by providing tokens, and checking for presence in channels

The following events are dispatched:

  • sp_real_time.event.subscribe: A SubscribeEvent is emitted when a token is generated for a channel
  • sp_real_time.event.message: A MessageEvent is emitted when a message is sent upstream to ably.io