Giter Club home page Giter Club logo

ti-ext-broadcast's Introduction

This extension integrates with Laravel Broadcasting to allow you to receive browser notifications when certain events happen in TastyIgniter. Now you can receive instant updates directly from your website to all of your devices.

Configuration

You need to fill in your applicable Pusher credentials under System > Settings > Broadcast Events settings. Follow the instructions given below for each social network you would like to use.

Add the Broadcast component included with this extension to a layout or page. The component injects the required js libraries into the page.

Usage

Example of Registering Event Broadcast

Here is an example of an extension registering an event broadcast class to be dispatched when system event activityLogger.logCreated is fired.

public function registerEventBroadcasts()
{
    return [
        'activityLogger.logCreated' => \Igniter\Broadcast\Events\BroadcastActivityCreated::class,
    ];
}

Example of an Event Class

An event broadcast class should implement Illuminate\Contracts\Broadcasting\ShouldBroadcast.

class BroadcastActivityCreated implements \Illuminate\Contracts\Broadcasting\ShouldBroadcast
{
    use Queueable, SerializesModels;

    /**
     * The activity model instance.
     *
     * @var \Igniter\Flame\ActivityLog\Models\Activity
     */
    public $activity;

    /**
     * BroadcastActivityCreated constructor.
     * @param $activity
     */
    public function __construct($activity)
    {
        $this->activity = $activity;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return Channel|Channel[]
     */
    public function broadcastOn()
    {
        return new PrivateChannel('admin.user.'.$this->activity->user_id);
    }
}

For more information see Defining Broadcast Events

Listening For Events on a User Authenticated Channel

Broadcast.user()
    .listen('eventName', (e) => {
        console.log(e);
    })

Listening For Events on a Public Channel

Broadcast.channel('channelName')
    .listen('eventName', (e) => {
        console.log(e);
    })

Use this PHP to manually dispatch a broadcast event:

Event::dispatch(new BroadcastActivityCreated($activity));

ti-ext-broadcast's People

Contributors

breaksecurity avatar sampoyigi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.