Skip to content

maxgaurav/laravel-sns-broadcaster

Repository files navigation

Broadcast Events as SNS Topic

Packagist GitHub tag License Downloads

The package allows you to broadcast laravel events as sns topic.

The queue also processes standard jobs pushed via laravel.

This package is a great use cases for applications beings deployed to microservices.

Requirements

  • PHP >= 7.2
  • Laravel >= 6
  • SQS driver for laravel
  • SNS in AWS

Installation

Install using composer

composer require maxgaurav/laravel-sns-broadcaster

The package will automatically register its service provider.

Configuration

Driver setup

Update your .env use the broadcasting driver

BROADCAST_DRIVER=sns

Environment Setup

TOPIC_SUFFIX=-dev #leave it blank, if you are trying to deploy base

Broadcaster Configuration Setup

In config/broadcasting.php add the following driver setup

return [

    'null' => [
        'driver' => 'null',
     ],

    'sns' => [
        'driver' => 'sns',
        'region' => env('AWS_DEFAULT_REGION'),
        'key' => env('AWS_ACCESS_KEY_ID'),
        'secret' => env('AWS_SECRET_ACCESS_KEY'),
        'suffix' => env('TOPIC_SUFFIX', '-dev'),
        'arn-prefix' => env('TOPIC_ARN_PREFIX', 'arn:aws:sns:us-east-2:123345666:') // note the arn prefix contains colon
    
    ],
];

Event setup

In your events implement the ShouldBroadcast interface. Then set the topic name to be return through broadcastOn method.

use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class SampleEvent implements ShouldBroadcast
{

    /**
     * @inheritDoc
     */
    public function broadcastOn()
    {
        return "you-topic-name"; // the topic without the prefix and suffix. Example user-created. If -dev is suffix then it will automatically appended
    }
}

License

The MIT License.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages