AblyBroadcaster
class AblyBroadcaster extends Broadcaster
Properties
| protected Container | $container | The container instance. |
from Broadcaster |
| protected Closure|null | $authenticatedUserCallback | The callback to resolve the authenticated user information. |
from Broadcaster |
| static protected array | $channels | The registered channel authenticators. |
from Broadcaster |
| static protected array | $channelOptions | The registered channel options. |
from Broadcaster |
| static protected Closure|null | $channelFormatter | The callback used to format outgoing channel values. |
from Broadcaster |
| static protected null|Request, string): ?string | $channelAuthorizer | The callback used to authorize incoming channel names. |
from Broadcaster |
| protected BindingRegistrar|null | $bindingRegistrar | The binding registrar instance. |
from Broadcaster |
Methods
Resolve the authenticated user payload for the incoming connection request.
Register the user retrieval callback used to authenticate connections.
Register a channel authenticator.
Authenticate the incoming request for a given channel.
Return the valid authentication response for the authorized channel.
Extract the parameters from the given pattern and channel.
Extract the parameters out of what the user passed to handle the channel authentication.
Extract the parameters out of a class channel's "join" method.
Extract the channel keys from the incoming channel name.
Resolve the given parameter binding.
Resolve an explicit parameter binding if applicable.
Resolve an implicit parameter binding if applicable.
Determine if a given key and parameter is implicitly bindable.
Format the channel array into an array of strings.
Normalize the given callback into a callable.
Retrieve the authenticated user using the configured guard (if any).
Retrieve options for a certain channel.
Check if the channel name from the request matches a pattern from registered channels.
Return the valid authentication response.
Generate the signature needed for Ably authentication headers.
Broadcast the given event.
Build an Ably message object for broadcasting.
Return true if the channel is protected by authentication.
Remove prefix from channel name.
Get the public token value from the Ably key.
Get the private token value from the Ably key.
Get the underlying Ably SDK instance.
Set the underlying Ably SDK instance.
Details
in
Broadcaster at line 67
array|null
resolveAuthenticatedUser(Request $request)
Resolve the authenticated user payload for the incoming connection request.
See: https://pusher.com/docs/channels/library_auth_reference/auth-signatures/#user-authentication.
in
Broadcaster at line 85
void
resolveAuthenticatedUserUsing(Closure|null $callback)
Register the user retrieval callback used to authenticate connections.
Boot-only. The callback persists in instance state on the cached broadcaster for the worker lifetime; per-request use races across coroutines.
See: https://pusher.com/docs/channels/library_auth_reference/auth-signatures/#user-authentication.
in
Broadcaster at line 97
Broadcaster
channel(HasBroadcastChannel|string $channel, callable|string $callback, array $options = [])
Register a channel authenticator.
Boot-only. The channel authorizer and options persist in shared static state on the Broadcaster class for the worker lifetime and apply to every subsequent connection authentication.
in
Broadcaster at line 118
static void
formatChannelsUsing(Closure|null $callback)
Register the outgoing channel formatter.
Boot-only. The callback persists in shared static state for the worker lifetime and applies to every broadcaster across all coroutines.
in
Broadcaster at line 129
static void
authorizeChannelsUsing(Closure|null $callback)
Register the incoming channel authorizer.
Boot-only. The callback persists in shared static state for the worker lifetime and applies to every broadcaster across all coroutines.
in
Broadcaster at line 139
protected mixed
verifyUserCanAccessChannel(Request $request, string $channel, bool $guarded = false)
Authenticate the incoming request for a given channel.
at line 62
protected mixed
validAuthenticationResponseForChannel(Request $request, mixed $result, string $channel)
Return the valid authentication response for the authorized channel.
in
Broadcaster at line 189
protected array
extractAuthParameters(string $pattern, string $channel, callable|string $callback)
Extract the parameters from the given pattern and channel.
in
Broadcaster at line 207
protected array
extractParameters(callable|string $callback)
Extract the parameters out of what the user passed to handle the channel authentication.
in
Broadcaster at line 223
protected array
extractParametersFromClass(string $callback)
Extract the parameters out of a class channel's "join" method.
in
Broadcaster at line 237
protected array
extractChannelKeys(string $pattern, string $channel)
Extract the channel keys from the incoming channel name.
in
Broadcaster at line 247
protected mixed
resolveBinding(string $key, string $value, array $callbackParameters)
Resolve the given parameter binding.
in
Broadcaster at line 261
protected mixed
resolveExplicitBindingIfPossible(string $key, mixed $value)
Resolve an explicit parameter binding if applicable.
in
Broadcaster at line 277
protected mixed
resolveImplicitBindingIfPossible(string $key, string $value, array $callbackParameters)
Resolve an implicit parameter binding if applicable.
in
Broadcaster at line 299
protected bool
isImplicitlyBindable(string $key, ReflectionParameter $parameter)
Determine if a given key and parameter is implicitly bindable.
at line 181
protected array
formatChannels(array $channels)
Format the channel array into an array of strings.
in
Broadcaster at line 323
protected BindingRegistrar|null
binder()
Get the model binding registrar instance.
in
Broadcaster at line 337
protected callable
normalizeChannelHandlerToCallable(callable|string $callback)
Normalize the given callback into a callable.
in
Broadcaster at line 347
protected mixed
retrieveUser(Request $request, string $channel)
Retrieve the authenticated user using the configured guard (if any).
in
Broadcaster at line 369
protected array
retrieveChannelOptions(string $channel)
Retrieve options for a certain channel.
in
Broadcaster at line 385
protected bool
channelNameMatchesPattern(string $channel, string $pattern)
Check if the channel name from the request matches a pattern from registered channels.
in
Broadcaster at line 395
Collection
getChannels()
Get all of the registered channels.
in
Broadcaster at line 403
static void
flushState()
Flush all static state.
at line 21
__construct(Container $container, AblyRest $ably)
Create a new broadcaster instance.
at line 32
mixed
auth(Request $request)
Authenticate the incoming request for a given channel.
at line 50
mixed
validAuthenticationResponse(Request $request, mixed $result)
Return the valid authentication response.
at line 103
string
generateAblySignature(string $channelName, string $socketId, array|null $userData = null)
Generate the signature needed for Ably authentication headers.
at line 122
void
broadcast(array $channels, string $event, array $payload = [])
Broadcast the given event.
at line 147
protected Message
buildAblyMessage(string $event, array $payload = [])
Build an Ably message object for broadcasting.
at line 159
bool
isGuardedChannel(string $channel)
Return true if the channel is protected by authentication.
at line 167
string
normalizeChannelName(string $channel)
Remove prefix from channel name.
at line 197
protected string
getPublicToken()
Get the public token value from the Ably key.
at line 205
protected string
getPrivateToken()
Get the private token value from the Ably key.
at line 213
AblyRest
getAbly()
Get the underlying Ably SDK instance.
at line 224
void
setAbly(AblyRest $ably)
Set the underlying Ably SDK instance.
Boot or tests only. Replaces the SDK client on this worker-cached broadcaster; per-request mutation races across coroutines.