dispatchFetchConnection function
Future<void>
dispatchFetchConnection(
- Engine engine,
- FetchRequestView request,
- ResponseAdapter response, {
- required RoutedNodeRuntimeInfo runtime,
- Uri? baseUri,
- Future<
FetchWebSocketUpgrade> acceptWebSocket()?,
Dispatches a Fetch-style request through the streaming adapter path.
Hosts can implement ResponseAdapter over a native response stream to
preserve progressive writes. This path does not buffer the full response.
Implementation
Future<void> dispatchFetchConnection(
Engine engine,
FetchRequestView request,
ResponseAdapter response, {
required RoutedNodeRuntimeInfo runtime,
Uri? baseUri,
Future<FetchWebSocketUpgrade> Function()? acceptWebSocket,
}) async {
publishRoutedNodeLifecycle(
engine,
RoutedNodeLifecycleEvent(
phase: RoutedNodeLifecyclePhase.requestStarted,
info: runtime,
),
);
try {
await engine.handleConnection(
HttpConnection(
_FetchRequestAdapter(
request,
baseUri: baseUri,
accept: acceptWebSocket,
),
response,
),
);
publishRoutedNodeLifecycle(
engine,
RoutedNodeLifecycleEvent(
phase: RoutedNodeLifecyclePhase.requestFinished,
info: runtime,
),
);
} catch (error, stackTrace) {
publishRoutedNodeLifecycle(
engine,
RoutedNodeLifecycleEvent(
phase: RoutedNodeLifecyclePhase.requestFailed,
info: runtime,
error: error,
stackTrace: stackTrace,
),
);
rethrow;
}
}