WebSocket Server

Documentation

Version Not Yet Released

You are viewing the documentation for the 1.x branch of the WebSocket Server package which has not yet been released. Be aware that the API for this version may change before release.

Parse HTTP Request Middleware

The BabDev\WebSocket\Server\Http\Middleware\ParseHttpRequest class is a server middleware which is used to read the initial HTTP request to the server and transforms it into a PSR-7 Psr\Http\Message\RequestInterface object which is stored on the connection's attribute store.

Request Parsing

The middleware requires a BabDev\WebSocket\Server\Http\RequestParser to transform the raw HTTP request body into a Psr\Http\Message\RequestInterface object. Parsers support chunked messages as read by the middleware and should check the http.buffer key on the connection's attribute store to decide if the full body has been received.

By default, the middleware will use the BabDev\WebSocket\Server\Http\GuzzleRequestParser class which relies on the guzzlehttp/psr7 package. You can use your own parser by implementing the interface and passing your class as the second parameter to the middleware's constructor.

Position in Middleware Stack

It is recommended that this middleware is decorated by the BabDev\WebSocket\Server\Http\Middleware\RejectBlockedIpAddress middleware in your application (see the message flow section from the architecture documentation to see the recommended stack with all optional middleware). As most middleware require the HTTP request to function, this should be one of the first middleware in your stack.

It is also recommended that this middleware decorates the BabDev\WebSocket\Server\WebSocket\Middleware\EstablishWebSocketConnection middleware, but it can decorate any server middleware.