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.