`Router` coordinates HTTP/WebSocket routing and middleware execution. After instantiation, you can register middleware and event listeners; then call `$invoke()` to run the request/response cycle.

Format

An [`R6::R6Class`] generator for `Router` objects.

See also

[Response], [Request], [Error]

Public fields

middleware

List of middleware entries.

listeners

List of listeners (event handlers).

Methods


Method addMiddleware()

Append middleware entry/entries to `middleware`.

Usage

Router$addMiddleware(middleware)

Arguments

middleware

A middleware object/function or list of them.


Method addListener()

Append a listener to `listeners`.

Usage

Router$addListener(listener)

Arguments

listener

A listener object with fields like `event` and `FUN`.


Method processEvent()

Dispatch an event to all matching listeners.

Usage

Router$processEvent(event, ...)

Arguments

event

Event name (e.g., `"start"`, `"error"`, `"finish"`).

...

Additional arguments forwarded to each listener `FUN`.


Method invoke()

Run the routing/middleware pipeline and return a structured response.

Usage

Router$invoke(req, websocket_msg = NULL, websocket_binary = NULL)

Arguments

req

Raw request object or `Request` instance.

websocket_msg

Optional WebSocket text message.

websocket_binary

Optional WebSocket binary payload (raw).


Method clone()

The objects of this class are cloneable with this method.

Usage

Router$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.