This package provides an extremely simple HTTP server that runs asynchronously.
Although Go provides http.ListenAndServe()
, this method blocks indefinitely. Worse yet, http.Server
doesn't provide a simple method for stopping the server. The need for go-asyncserver arose from these problems.
The following example demonstrates the creation of a simple asynchronous HTTP server:
import "github.com/hectane/go-asyncserver"
// "0" instructs the OS to select a free port
s := server.New(":0")
// The server doesn't actually begin accepting connections
// until the Start() method is called
if err := s.Start(); err != nil {
panic(err)
}
// The server will now accept connections at s.Addr
// ...do stuff here...
// Stop the server
s.Stop()