Clone this repo:
  1. e8c8be7 Skip test binding to IPv4 without support (#30) by Nate Bosch · 5 weeks ago master
  2. 22c93ae Pass a Uri to package:http APIs (#29) by Nate Bosch · 5 weeks ago
  3. f1d1c9c Change issue link to https. (#27) by AmitB · 4 months ago
  4. ba2f401 Remove unused dart:async import (#28) by Michael R Fairhurst · 4 months ago
  5. ea269f7 Drop the publish_to: none (#25) by Nate Bosch · 12 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() async {
  // Both and http://[::1]:8080 will be bound to the same
  // server.
  var server = await HttpMultiServer.loopback(8080);
  shelf_io.serveRequests(server, (request) {
    return shelf.Response.ok("Hello, world!");