2017 © Pedro Peláez
 

yii2-extension yii2-broadcasting

Websocket broadcasting module

image

mkiselev/yii2-broadcasting

Websocket broadcasting module

  • Monday, July 17, 2017
  • by MKiselev
  • Repository
  • 2 Watchers
  • 9 Stars
  • 78 Installations
  • JavaScript
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 2 Open issues
  • 3 Versions
  • 5 % Grown

The README.md

Yii2-broadcasting

Websocket broadcasting module, (*1)

Latest Stable Version Total Downloads Latest Unstable Version License Monthly Downloads, (*2)

This module is made under inspiration of laravel echo and compatible with libraries., (*3)

There are several broadcast tools available for your choice:, (*4)

1) NullBroadcaster Doing nothing, just a stub 2) LogBroadcaster Broadcast events to application log 3) RedisBroadcaster Broadcast by Redis using Pub/Sub feature (required yii2-redis) 4) RatchetBroadcaster (coming soon...) 5) PusherBroadcaster Broadcast by using pusher.com (coming soon...), (*5)

Installation

The preferred way to install this extension is through composer., (*6)

Either run, (*7)

composer require --prefer-dist mkiselev/yii2-broadcasting "*"

or add, (*8)

"mkiselev/yii2-broadcasting": "*"

to the require section of your composer.json file., (*9)

Application configuration

Configure module for use some broadcaster and configure channels auth callbacks:, (*10)

'bootstrap' => ['broadcasting'],
'modules' => [
    'broadcasting' => [
        'class' => \mkiselev\broadcasting\Module::class,
        'broadcaster' => [
            'class' => \mkiselev\broadcasting\broadcasters\RedisBroadcaster::class,
            // By default will be used redis application component, but you can configure as you want
            'redis' => [
                'class' => \yii\redis\Connection::class,
            ],
            // Configure auth callback for private and presitance chanells
            'channels' => [
                'signal' => function (\yii\web\User $user) {
                    return $user->can('something');
                },
            ],
        ],
    ],
],

Socket.io server configuration

This module is compilable with laravel-echo-server, (*11)

Please follow to laravel-echo-server instructions to install and run them., (*12)

Usage

Server side

Write your event extended by \mkiselev\broadcasting\events\BroadcastEvent like this:, (*13)

<?php

namespace common\models;

use mkiselev\broadcasting\channels\PrivateChannel;
use mkiselev\broadcasting\events\BroadcastEvent;

class SignalEvent extends BroadcastEvent
{
    public $someParam = 42;

    public function broadcastOn()
    {
        return new PrivateChannel('signal');
    }

    public function broadcastAs()
    {
        return 'new';
    }
}

And broadcast it somewhere:, (*14)

(new common\models\SignalEvent(['someParam' => 146]))->toOthers()->broadcast();

Client side

Register mkiselev\broadcasting\assets\EchoAsset import socket.io library https://github.com/tlaverdure/laravel-echo-server#socketio-client-library, (*15)

window.io = io;
window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: window.location.hostname + ':6001'
});

Echo.channel('signal')
    .listen('.new', function(e) {
        console.log(e.someParam);
    });

CHANGELOG

The Versions

17/07 2017

dev-master

9999999-dev

Websocket broadcasting module

  Sources   Download

MIT

The Requires

 

by Maksim Kiselev

extension yii2 echo websocket

17/07 2017

0.0.2

0.0.2.0

Websocket broadcasting module

  Sources   Download

MIT

The Requires

 

by Maksim Kiselev

extension yii2 echo websocket

12/07 2017

0.0.1

0.0.1.0

Websocket broadcasting module

  Sources   Download

MIT

The Requires

 

by Maksim Kiselev

extension yii2 echo websocket