![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/ts.corals.io/frontend/node_modules/laravel-echo/src/connector/ |
import { Connector } from './connector'; import { PusherChannel, PusherPrivateChannel, PusherEncryptedPrivateChannel, PusherPresenceChannel, PresenceChannel, } from './../channel'; /** * This class creates a connector to Pusher. */ export class PusherConnector extends Connector { /** * The Pusher instance. */ pusher: any; /** * All of the subscribed channel names. */ channels: any = {}; /** * Create a fresh Pusher connection. */ connect(): void { if (typeof this.options.client !== 'undefined') { this.pusher = this.options.client; } else if (this.options.Pusher) { this.pusher = new this.options.Pusher(this.options.key, this.options); } else { this.pusher = new Pusher(this.options.key, this.options); } } /** * Sign in the user via Pusher user authentication (https://pusher.com/docs/channels/using_channels/user-authentication/). */ signin(): void { this.pusher.signin(); } /** * Listen for an event on a channel instance. */ listen(name: string, event: string, callback: Function): PusherChannel { return this.channel(name).listen(event, callback); } /** * Get a channel instance by name. */ channel(name: string): PusherChannel { if (!this.channels[name]) { this.channels[name] = new PusherChannel(this.pusher, name, this.options); } return this.channels[name]; } /** * Get a private channel instance by name. */ privateChannel(name: string): PusherChannel { if (!this.channels['private-' + name]) { this.channels['private-' + name] = new PusherPrivateChannel(this.pusher, 'private-' + name, this.options); } return this.channels['private-' + name]; } /** * Get a private encrypted channel instance by name. */ encryptedPrivateChannel(name: string): PusherChannel { if (!this.channels['private-encrypted-' + name]) { this.channels['private-encrypted-' + name] = new PusherEncryptedPrivateChannel( this.pusher, 'private-encrypted-' + name, this.options ); } return this.channels['private-encrypted-' + name]; } /** * Get a presence channel instance by name. */ presenceChannel(name: string): PresenceChannel { if (!this.channels['presence-' + name]) { this.channels['presence-' + name] = new PusherPresenceChannel( this.pusher, 'presence-' + name, this.options ); } return this.channels['presence-' + name]; } /** * Leave the given channel, as well as its private and presence variants. */ leave(name: string): void { let channels = [name, 'private-' + name, 'private-encrypted-' + name, 'presence-' + name]; channels.forEach((name: string, index: number) => { this.leaveChannel(name); }); } /** * Leave the given channel. */ leaveChannel(name: string): void { if (this.channels[name]) { this.channels[name].unsubscribe(); delete this.channels[name]; } } /** * Get the socket ID for the connection. */ socketId(): string { return this.pusher.connection.socket_id; } /** * Disconnect Pusher connection. */ disconnect(): void { this.pusher.disconnect(); } }