From 7b734ed2fb4e2d015ea59d6ccad9e515285b93a8 Mon Sep 17 00:00:00 2001 From: DellanX <31318348+DellanX@users.noreply.github.com> Date: Tue, 7 Feb 2023 11:18:10 -0600 Subject: [PATCH 1/3] Add Whisper typescript Prototype --- src/channel/presence-channel.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/channel/presence-channel.ts b/src/channel/presence-channel.ts index 6566898b..c6dd42e5 100644 --- a/src/channel/presence-channel.ts +++ b/src/channel/presence-channel.ts @@ -18,4 +18,9 @@ export interface PresenceChannel extends Channel { * Listen for someone leaving the channel. */ leaving(callback: Function): PresenceChannel; + + /** + * Fire a whisper event to clients present in the channel. + */ + whisper(eventName: string, data: any): PresenceChannel; } From d1e8cd03ea9651562b231a05bef6421fd26e6958 Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 18 Apr 2023 18:25:47 -0500 Subject: [PATCH 2/3] Fixed broken class --- src/channel/presence-channel.ts | 2 +- src/channel/socketio-presence-channel.ts | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/channel/presence-channel.ts b/src/channel/presence-channel.ts index c6dd42e5..17f4a698 100644 --- a/src/channel/presence-channel.ts +++ b/src/channel/presence-channel.ts @@ -18,7 +18,7 @@ export interface PresenceChannel extends Channel { * Listen for someone leaving the channel. */ leaving(callback: Function): PresenceChannel; - + /** * Fire a whisper event to clients present in the channel. */ diff --git a/src/channel/socketio-presence-channel.ts b/src/channel/socketio-presence-channel.ts index 879c1261..c6f1cb00 100644 --- a/src/channel/socketio-presence-channel.ts +++ b/src/channel/socketio-presence-channel.ts @@ -33,4 +33,17 @@ export class SocketIoPresenceChannel extends SocketIoPrivateChannel implements P return this; } + + /** + * Trigger client event on the channel. + */ + whisper(eventName: string, data: any): SocketIoPresenceChannel { + this.socket.emit('client event', { + channel: this.name, + event: `client-${eventName}`, + data: data, + }); + + return this; + } } From 663570eb10e7fd7c2a60b2d3bb8ffb6a11c507ad Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Wed, 19 Apr 2023 08:51:37 -0500 Subject: [PATCH 3/3] formatting --- src/channel/null-presence-channel.ts | 8 ++++---- src/channel/null-private-channel.ts | 2 +- src/channel/presence-channel.ts | 8 ++++---- .../pusher-encrypted-private-channel.ts | 2 +- src/channel/pusher-presence-channel.ts | 16 +++++++-------- src/channel/pusher-private-channel.ts | 2 +- src/channel/socketio-presence-channel.ts | 20 +++++++++---------- src/channel/socketio-private-channel.ts | 2 +- 8 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/channel/null-presence-channel.ts b/src/channel/null-presence-channel.ts index cc4bea38..18ca9b94 100644 --- a/src/channel/null-presence-channel.ts +++ b/src/channel/null-presence-channel.ts @@ -20,16 +20,16 @@ export class NullPresenceChannel extends NullChannel implements PresenceChannel } /** - * Listen for someone leaving the channel. + * Send a whisper event to other clients in the channel. */ - leaving(callback: Function): NullPresenceChannel { + whisper(eventName: string, data: any): NullPresenceChannel { return this; } /** - * Trigger client event on the channel. + * Listen for someone leaving the channel. */ - whisper(eventName: string, data: any): NullPresenceChannel { + leaving(callback: Function): NullPresenceChannel { return this; } } diff --git a/src/channel/null-private-channel.ts b/src/channel/null-private-channel.ts index b3a78327..e6221779 100644 --- a/src/channel/null-private-channel.ts +++ b/src/channel/null-private-channel.ts @@ -5,7 +5,7 @@ import { NullChannel } from './null-channel'; */ export class NullPrivateChannel extends NullChannel { /** - * Trigger client event on the channel. + * Send a whisper event to other clients in the channel. */ whisper(eventName: string, data: any): NullPrivateChannel { return this; diff --git a/src/channel/presence-channel.ts b/src/channel/presence-channel.ts index 17f4a698..1b0ec302 100644 --- a/src/channel/presence-channel.ts +++ b/src/channel/presence-channel.ts @@ -15,12 +15,12 @@ export interface PresenceChannel extends Channel { joining(callback: Function): PresenceChannel; /** - * Listen for someone leaving the channel. + * Send a whisper event to other clients in the channel. */ - leaving(callback: Function): PresenceChannel; + whisper(eventName: string, data: any): PresenceChannel; /** - * Fire a whisper event to clients present in the channel. + * Listen for someone leaving the channel. */ - whisper(eventName: string, data: any): PresenceChannel; + leaving(callback: Function): PresenceChannel; } diff --git a/src/channel/pusher-encrypted-private-channel.ts b/src/channel/pusher-encrypted-private-channel.ts index 23f303f2..edc82c4c 100644 --- a/src/channel/pusher-encrypted-private-channel.ts +++ b/src/channel/pusher-encrypted-private-channel.ts @@ -5,7 +5,7 @@ import { PusherChannel } from './pusher-channel'; */ export class PusherEncryptedPrivateChannel extends PusherChannel { /** - * Trigger client event on the channel. + * Send a whisper event to other clients in the channel. */ whisper(eventName: string, data: any): PusherEncryptedPrivateChannel { this.pusher.channels.channels[this.name].trigger(`client-${eventName}`, data); diff --git a/src/channel/pusher-presence-channel.ts b/src/channel/pusher-presence-channel.ts index 86af7080..7c70c523 100644 --- a/src/channel/pusher-presence-channel.ts +++ b/src/channel/pusher-presence-channel.ts @@ -28,21 +28,21 @@ export class PusherPresenceChannel extends PusherChannel implements PresenceChan } /** - * Listen for someone leaving the channel. + * Send a whisper event to other clients in the channel. */ - leaving(callback: Function): PusherPresenceChannel { - this.on('pusher:member_removed', (member) => { - callback(member.info); - }); + whisper(eventName: string, data: any): PusherPresenceChannel { + this.pusher.channels.channels[this.name].trigger(`client-${eventName}`, data); return this; } /** - * Trigger client event on the channel. + * Listen for someone leaving the channel. */ - whisper(eventName: string, data: any): PusherPresenceChannel { - this.pusher.channels.channels[this.name].trigger(`client-${eventName}`, data); + leaving(callback: Function): PusherPresenceChannel { + this.on('pusher:member_removed', (member) => { + callback(member.info); + }); return this; } diff --git a/src/channel/pusher-private-channel.ts b/src/channel/pusher-private-channel.ts index ad67e571..9158449d 100644 --- a/src/channel/pusher-private-channel.ts +++ b/src/channel/pusher-private-channel.ts @@ -5,7 +5,7 @@ import { PusherChannel } from './pusher-channel'; */ export class PusherPrivateChannel extends PusherChannel { /** - * Trigger client event on the channel. + * Send a whisper event to other clients in the channel. */ whisper(eventName: string, data: any): PusherPrivateChannel { this.pusher.channels.channels[this.name].trigger(`client-${eventName}`, data); diff --git a/src/channel/socketio-presence-channel.ts b/src/channel/socketio-presence-channel.ts index c6f1cb00..96e46dd5 100644 --- a/src/channel/socketio-presence-channel.ts +++ b/src/channel/socketio-presence-channel.ts @@ -26,16 +26,7 @@ export class SocketIoPresenceChannel extends SocketIoPrivateChannel implements P } /** - * Listen for someone leaving the channel. - */ - leaving(callback: Function): SocketIoPresenceChannel { - this.on('presence:leaving', (member) => callback(member.user_info)); - - return this; - } - - /** - * Trigger client event on the channel. + * Send a whisper event to other clients in the channel. */ whisper(eventName: string, data: any): SocketIoPresenceChannel { this.socket.emit('client event', { @@ -46,4 +37,13 @@ export class SocketIoPresenceChannel extends SocketIoPrivateChannel implements P return this; } + + /** + * Listen for someone leaving the channel. + */ + leaving(callback: Function): SocketIoPresenceChannel { + this.on('presence:leaving', (member) => callback(member.user_info)); + + return this; + } } diff --git a/src/channel/socketio-private-channel.ts b/src/channel/socketio-private-channel.ts index 0674e61f..102da067 100644 --- a/src/channel/socketio-private-channel.ts +++ b/src/channel/socketio-private-channel.ts @@ -5,7 +5,7 @@ import { SocketIoChannel } from './socketio-channel'; */ export class SocketIoPrivateChannel extends SocketIoChannel { /** - * Trigger client event on the channel. + * Send a whisper event to other clients in the channel. */ whisper(eventName: string, data: any): SocketIoChannel { this.socket.emit('client event', {