`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.
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.