respond method

  1. @override
Future<void> respond(
  1. Event event,
  2. HttpRequest request,
  3. Response response
)
override

Respond to a response.

Implementation

@override
Future<void> respond(
    Event event, HttpRequest request, Response response) async {
  if (event.locals.getOrNull(_kUpgradedWebSocket) == true) {
    return;
  }

  final httpResponse = request.response;
  httpResponse.statusCode = response.status;
  httpResponse.reasonPhrase = response.statusText;

  for (final (name, value) in response.headers) {
    httpResponse.headers.add(name, value);
  }

  final body = response.body;
  if (body != null) {
    await httpResponse.addStream(body);
  }

  await httpResponse.close();
}