Purpose of this Component

The Router component is composed using parts of the Symfony Routing Component. It allows multiple WebSocket apps to be run on the same server distinguished by HTTP endpoints.

Note: This component is bundled within the App class and includes a UrlMatcher to make your life easy.

Events triggered by this Component

As found in the API Docs: Triggered events are propagated through a HttpServerInterface object passed to the __construct.

  • onOpen (ConnectionInterface $conn, RequestInterface $request = null) - A new client connection has been opened
  • onClose (ConnectionInterface $conn) - A client connection is about to, or has closed
  • onMessage (ConnectionInterface $from, string $message) - A data message has been received
  • onError (ConnectionInterface $from, Exception $error) - An error has occurred with a Connection

Configuration properties

  • $allowedOrigins - An array of strings of origins (URLs) to allow.

Functions callable on Connections

  • send (string $message) - Send a message (string) to the client
  • close - Gracefully close the connection to the client

Wraps other components nicely

Wrapped by other components nicely


It is recommended using the Router through the App class where all the assembly is already done for you.

If you want to compose everything yourself please see the Symfony Routing Documentation.