Wrench\Listener\RateLimiter

class RateLimiter
property server

protected Server

The server being limited

property ips

protected array<int>

Connection counts per IP address

property requests

protected array<array<int>>

Request tokens per IP address

property options

protected array

property protocol

protected Protocol

__construct($options = array())

Constructor

Parameters:
  • $options (array) –
configure($options)
Parameters:
  • $options (array) –
listen(Server $server)
Parameters:
onSocketConnect($socket, $connection)

Event listener

Parameters:
  • $socket (resource) –
  • $connection (Connection) –
onSocketDisconnect($socket, $connection)

Event listener

Parameters:
  • $socket (resource) –
  • $connection (Connection) –
onClientData($socket, $connection)

Event listener

Parameters:
  • $socket (resource) –
  • $connection (Connection) –
checkConnections($connection)

Idempotent

Parameters:
checkConnectionsPerIp($connection)

NOT idempotent, call once per connection

Parameters:
releaseConnection($connection)

NOT idempotent, call once per disconnection

Parameters:
checkRequestsPerMinute($connection)

NOT idempotent, call once per data

Parameters:
limit($connection, $limit)

Limits the given connection

Parameters:
  • $connection (Connection) –
  • $limit (string) – Reason
log($message, $priority = 'info')

Logger

Parameters:
  • $message (string) –
  • $priority (string) –
configureProtocol()

Configures the protocol option