HttpMultiServer class

An implementation of dart:io's HttpServer that wraps multiple servers and forwards methods to all of them.

This is useful for serving the same application on multiple network interfaces while still having a unified way of controlling the servers. In particular, it supports serving on both the IPv4 and IPv6 loopback addresses using HttpMultiServer.loopback.

Inheritance
Implemented types

Constructors

HttpMultiServer(Iterable<HttpServer> servers)
Creates an HttpMultiServer wrapping servers. [...]

Properties

address InternetAddress
Returns the address that one of the wrapped servers is listening on. [...]
read-only, override
autoCompress bool
Whether the HttpServer should compress the content, if possible. [...]
read / write, override
defaultResponseHeaders HttpHeaders
Returns the default set of headers added to all response objects. [...]
final
first Future<HttpRequest>
The first element of this stream. [...]
read-only, inherited
hashCode int
The hash code for this object. [...]
read-only, inherited
idleTimeout Duration
Gets or sets the timeout used for idle keep-alive connections. If no further request is seen within idleTimeout after the previous request was completed, the connection is dropped. [...]
read / write, override
isBroadcast bool
Whether this stream is a broadcast stream.
read-only, inherited
isEmpty Future<bool>
Whether this stream contains any elements. [...]
read-only, inherited
last Future<HttpRequest>
The last element of this stream. [...]
read-only, inherited
length Future<int>
The number of elements in this stream. [...]
read-only, inherited
port int
Returns the port that one of the wrapped servers is listening on. [...]
read-only, override
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
serverHeader String
Returns the default value of the Server header for all responses generated by each server. [...]
read / write, override
sessionTimeout int
Sets the timeout, in seconds, for sessions of this HttpServer. The default timeout is 20 minutes.
write-only, override
single Future<HttpRequest>
The single element of this stream. [...]
read-only, inherited

Methods

any(bool test(HttpRequest element)) Future<bool>
Checks whether test accepts any element provided by this stream. [...]
inherited
asBroadcastStream({void onListen(StreamSubscription<HttpRequest> subscription), void onCancel(StreamSubscription<HttpRequest> subscription)}) Stream<HttpRequest>
Returns a multi-subscription stream that produces the same events as this. [...]
inherited
asyncExpand<E>(Stream<E> convert(HttpRequest event)) Stream<E>
Transforms each element into a sequence of asynchronous events. [...]
inherited
asyncMap<E>(FutureOr<E> convert(HttpRequest event)) Stream<E>
Creates a new stream with each data event of this stream asynchronously mapped to a new event. [...]
inherited
cast<R>() Stream<R>
Adapt this stream to be a Stream<R>. [...]
inherited
close({bool force: false}) Future
Permanently stops this HttpServer from listening for new connections. This closes the Stream of HttpRequests with a done event. The returned future completes when the server is stopped. For a server started using bind or bindSecure this means that the port listened on no longer in use. [...]
override
connectionsInfo() HttpConnectionsInfo
Returns an HttpConnectionsInfo object summarizing the total number of current connections handled by all the servers.
override
contains(Object needle) Future<bool>
Returns whether needle occurs in the elements provided by this stream. [...]
inherited
distinct([bool equals(HttpRequest previous, HttpRequest next)]) Stream<HttpRequest>
Skips data events if they are equal to the previous data event. [...]
inherited
drain<E>([E futureValue]) Future<E>
Discards all data on this stream, but signals when it is done or an error occurred. [...]
inherited
elementAt(int index) Future<HttpRequest>
Returns the value of the indexth data event of this stream. [...]
inherited
every(bool test(HttpRequest element)) Future<bool>
Checks whether test accepts all elements provided by this stream. [...]
inherited
expand<S>(Iterable<S> convert(HttpRequest element)) Stream<S>
Transforms each element of this stream into a sequence of elements. [...]
inherited
firstWhere(bool test(HttpRequest element), {HttpRequest orElse()}) Future<HttpRequest>
Finds the first element of this stream matching test. [...]
inherited
fold<S>(S initialValue, S combine(S previous, HttpRequest element)) Future<S>
Combines a sequence of values by repeatedly applying combine. [...]
inherited
forEach(void action(HttpRequest element)) Future
Executes action on each element of this stream. [...]
inherited
handleError(Function onError, {bool test(dynamic error)}) Stream<HttpRequest>
Creates a wrapper Stream that intercepts some errors from this stream. [...]
inherited
join([String separator = ""]) Future<String>
Combines the string representation of elements into a single string. [...]
inherited
lastWhere(bool test(HttpRequest element), {HttpRequest orElse()}) Future<HttpRequest>
Finds the last element in this stream matching test. [...]
inherited
listen(void onData(HttpRequest value), {Function onError, void onDone(), bool cancelOnError}) StreamSubscription<HttpRequest>
Adds a subscription to this stream. [...]
inherited
map<S>(S convert(HttpRequest event)) Stream<S>
Transforms each element of this stream into a new stream event. [...]
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
pipe(StreamConsumer<HttpRequest> streamConsumer) Future
Pipes the events of this stream into streamConsumer. [...]
inherited
reduce(HttpRequest combine(HttpRequest previous, HttpRequest element)) Future<HttpRequest>
Combines a sequence of values by repeatedly applying combine. [...]
inherited
singleWhere(bool test(HttpRequest element), {HttpRequest orElse()}) Future<HttpRequest>
Finds the single element in this stream matching test. [...]
inherited
skip(int count) Stream<HttpRequest>
Skips the first count data events from this stream. [...]
inherited
skipWhile(bool test(HttpRequest element)) Stream<HttpRequest>
Skip data events from this stream while they are matched by test. [...]
inherited
take(int count) Stream<HttpRequest>
Provides at most the first count data events of this stream. [...]
inherited
takeWhile(bool test(HttpRequest element)) Stream<HttpRequest>
Forwards data events while test is successful. [...]
inherited
timeout(Duration timeLimit, {void onTimeout(EventSink<HttpRequest> sink)}) Stream<HttpRequest>
Creates a new stream with the same events as this stream. [...]
inherited
toList() Future<List<HttpRequest>>
Collects all elements of this stream in a List. [...]
inherited
toSet() Future<Set<HttpRequest>>
Collects the data of this stream in a Set. [...]
inherited
toString() String
Returns a string representation of this object.
inherited
transform<S>(StreamTransformer<HttpRequest, S> streamTransformer) Stream<S>
Applies streamTransformer to this stream. [...]
inherited
where(bool test(HttpRequest event)) Stream<HttpRequest>
Creates a new stream from this stream that discards some elements. [...]
inherited

Operators

operator ==(dynamic other) bool
The equality operator. [...]
inherited

Static Methods

bind(dynamic address, int port, {int backlog: 0, bool v6Only: false, bool shared: false}) Future<HttpServer>
Bind an HttpServer with handling for special addresses 'localhost' and 'any'. [...]
override
loopback(int port, {int backlog, bool v6Only: false, bool shared: false}) Future<HttpServer>
Creates an HttpServer listening on all available loopback addresses for this computer. [...]
loopbackSecure(int port, SecurityContext context, {int backlog, bool v6Only: false, bool requestClientCertificate: false, bool shared: false}) Future<HttpServer>
Like loopback, but supports HTTPS requests. [...]