Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sarfraznawaz2005/laravel-sse
Laravel package to provide Server Sent Events functionality for your app.
https://github.com/sarfraznawaz2005/laravel-sse
events laravel laravel-package notifications polling realtime serversentevents sse
Last synced: 13 days ago
JSON representation
Laravel package to provide Server Sent Events functionality for your app.
- Host: GitHub
- URL: https://github.com/sarfraznawaz2005/laravel-sse
- Owner: sarfraznawaz2005
- License: mit
- Created: 2019-08-09T12:47:23.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2024-06-26T11:05:15.000Z (5 months ago)
- Last Synced: 2024-10-11T20:14:10.363Z (28 days ago)
- Topics: events, laravel, laravel-package, notifications, polling, realtime, serversentevents, sse
- Language: PHP
- Homepage:
- Size: 22.5 KB
- Stars: 44
- Watchers: 3
- Forks: 13
- Open Issues: 1
-
Metadata Files:
- Readme: readme.md
- License: license.md
Awesome Lists containing this project
README
[![Latest Version on Packagist][ico-version]][link-packagist]
[![Total Downloads][ico-downloads]][link-downloads]# Laravel SSE
Laravel package to provide Server Sent Events functionality for your app. You can use this package to show instant notifications to your users without them having to refresh their pages.
## Requirements
- PHP >= 7
- Laravel 5## Installation
Via Composer
``` bash
$ composer require sarfraznawaz2005/laravel-sse
```For Laravel < 5.5:
Add Service Provider to `config/app.php` in `providers` section
```php
Sarfraznawaz2005\SSE\ServiceProvider::class,
```Add Facade to `config/app.php` in `aliases` section
```php
'SSE' => Sarfraznawaz2005\SSE\Facades\SSEFacade::class,
```---
Publish package's config, migration and view files by running below command:
```bash
$ php artisan vendor:publish --provider="Sarfraznawaz2005\SSE\ServiceProvider"
```
Run `php artisan migrate` to create `sselogs` table.## Setup SSE
Setup config options in `config/sse.php` file and then add this in your view/layout file:
```php
@include('sse::view')
```## Usage
Syntax:
```php
/**
* @param string $message : notification message
* @param string $type : alert, success, error, warning, info
* @param string $event : Type of event such as "EmailSent", "UserLoggedIn", etc
*/
SSEFacade::notify($message, $type = 'info', $event = 'message')
```To show popup notifications on the screen, in your controllers/event classes, you can do:
```php
use Sarfraznawaz2005\SSE\Facades\SSEFacade;public function myMethod()
{
SSEFacade::notify('hello world....');
// or via helper
sse_notify('hi there');
}
```## Customizing Notification Library
By default, package uses [noty](https://github.com/needim/noty) for showing notifications. You can customize this by modifying code in `resources/views/vendor/sse/view.blade.php` file.
## Customizing SSE Events
By default, pacakge uses `message` event type for streaming response:
```php
SSEFacade::notify($message, $type = 'info', $event = 'message')
```Notice `$event = 'message'`. You can customize this, let's say you want to use `UserLoggedIn` as SSE event type:
```php
use Sarfraznawaz2005\SSE\Facades\SSEFacade;public function myMethod()
{
SSEFacade::notify('hello world....', 'info', 'UserLoggedIn');
// or via helper
sse_notify('hi there', 'info', 'UserLoggedIn');
}
```Then you need to handle this in your view yourself like this:
```javascript
var es = new EventSource("{{route('__sse_stream__')}}");
es.addEventListener("UserLoggedIn", function (e) {
var data = JSON.parse(e.data);
alert(data.message);
}, false);```
## Credits
- [Sarfraz Ahmed][link-author]
- [All Contributors][link-contributors]## License
Please see the [license file](license.md) for more information.
[ico-version]: https://img.shields.io/packagist/v/sarfraznawaz2005/laravel-sse.svg?style=flat-square
[ico-downloads]: https://img.shields.io/packagist/dt/sarfraznawaz2005/laravel-sse.svg?style=flat-square[link-packagist]: https://packagist.org/packages/sarfraznawaz2005/laravel-sse
[link-downloads]: https://packagist.org/packages/sarfraznawaz2005/laravel-sse
[link-author]: https://github.com/sarfraznawaz2005
[link-contributors]: https://github.com/sarfraznawaz2005/laravel-sse/graphs/contributors