https://github.com/maxgaurav/laravel-sns-broadcaster
https://github.com/maxgaurav/laravel-sns-broadcaster
Last synced: 5 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/maxgaurav/laravel-sns-broadcaster
- Owner: maxgaurav
- License: mit
- Created: 2020-03-24T03:46:15.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-04T06:09:12.000Z (about 4 years ago)
- Last Synced: 2024-03-14T16:15:13.981Z (over 1 year ago)
- Language: PHP
- Size: 21.5 KB
- Stars: 2
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Broadcast Events as SNS Topic
[](https://packagist.org/packages/maxgaurav/laravel-sns-broadcaster)
[](https://github.com/maxgaurav/laravel-sns-broadcaster/releases)
[](LICENSE.txt)
[](https://packagist.org/packages/maxgaurav/laravel-sns-broadcaster/stats)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
```sh
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```php
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.
```php
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](https://opensource.org/licenses/MIT) License.