Clone this repo:
  1. b62a710 Change '127.0.0.1' to 'localhost' to support both IPv4 and IPv6 envs. by Keerti Parthasarathy · 6 days ago master
  2. 40d45ab Work in IPv6-only environments. (#2) by Natalie Weizenbaum · 8 months ago 2.0.3
  3. 681aac1 Properly depend on async. by Natalie Weizenbaum · 1 year ago 2.0.2
  4. 20e2bb5 Fix most strong mode warnings. by Natalie Weizenbaum · 1 year, 3 months ago 2.0.1
  5. ef0873e Get rid of all the library tags. by Natalie Weizenbaum · 1 year, 6 months ago

An implementation of dart:io‘s HttpServer that wraps multiple servers and forwards methods to all of them. It’s 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.

import 'package:http_multi_server/http_multi_server.dart';
import 'package:shelf/shelf.dart' as shelf;
import 'package:shelf/shelf_io.dart' as shelf_io;

void main() {
  // Both http://127.0.0.1:8080 and http://[::1]:8080 will be bound to the same
  // server.
  HttpMultiServer.loopback(8080).then((server) {
    shelf_io.serveRequests(server, (request) {
      return new shelf.Response.ok("Hello, world!");
    });
  });
}