diff options
author | Aliaksandr Valialkin <valyala@gmail.com> | 2015-11-29 23:13:57 +0200 |
---|---|---|
committer | Aliaksandr Valialkin <valyala@gmail.com> | 2015-11-29 23:13:57 +0200 |
commit | 8a57f94be9d0bed35318259e931dea5a1045a4f5 (patch) | |
tree | 9f76485ad703b26430b40a83ee213430289412a4 /server_example_test.go | |
parent | Properly remove hijack hander from RequestCtx (diff) | |
download | fasthttp-8a57f94be9d0bed35318259e931dea5a1045a4f5.tar.gz fasthttp-8a57f94be9d0bed35318259e931dea5a1045a4f5.tar.bz2 fasthttp-8a57f94be9d0bed35318259e931dea5a1045a4f5.zip |
Added initial server examples
Diffstat (limited to 'server_example_test.go')
-rw-r--r-- | server_example_test.go | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/server_example_test.go b/server_example_test.go new file mode 100644 index 0000000..9f6d9f3 --- /dev/null +++ b/server_example_test.go @@ -0,0 +1,83 @@ +package fasthttp + +import ( + "fmt" + "log" + "net" +) + +func ExampleListenAndServe() { + // The server will listen for incoming requests on this address. + listenAddr := "127.0.0.1:80" + + // This function will be called by the server for each incoming request. + // + // RequestCtx provides a lot of functionality related to http request + // processing. See RequestCtx docs for details. + requestHandler := func(ctx *RequestCtx) { + fmt.Fprintf(ctx, "Hello, world! Requested path is %q", ctx.Path()) + } + + // Start the server with default settings. + // Create Server instance for adjusting server settings. + // + // ListenAndServe returns only on error, so usually it blocks forever. + if err := ListenAndServe(listenAddr, requestHandler); err != nil { + log.Fatalf("error in ListenAndServe: %s", err) + } +} + +func ExampleServe() { + // Create network listener for accepting incoming requests. + // + // Note that you are not limited by TCP listener - arbitrary + // net.Listener may be used by the server. + // For example, unix socket listener or TLS listener. + ln, err := net.Listen("tcp4", "127.0.0.1:8080") + if err != nil { + log.Fatalf("error in net.Listen: %s", err) + } + + // This function will be called by the server for each incoming request. + // + // RequestCtx provides a lot of functionality related to http request + // processing. See RequestCtx docs for details. + requestHandler := func(ctx *RequestCtx) { + fmt.Fprintf(ctx, "Hello, world! Requested path is %q", ctx.Path()) + } + + // Start the server with default settings. + // Create Server instance for adjusting server settings. + // + // Serve returns on ln.Close() or error, so usually it blocks forever. + if err := Serve(ln, requestHandler); err != nil { + log.Fatalf("error in Serve: %s", err) + } +} + +func ExampleServer() { + // This function will be called by the server for each incoming request. + // + // RequestCtx provides a lot of functionality related to http request + // processing. See RequestCtx docs for details. + requestHandler := func(ctx *RequestCtx) { + fmt.Fprintf(ctx, "Hello, world! Requested path is %q", ctx.Path()) + } + + // Create custom server. + s := &Server{ + Handler: requestHandler, + + // Every response will contain 'Server: My super server' header. + Name: "My super server", + + // Other Server settings may be set here. + } + + // Start the server listening for incoming requests on the given address. + // + // ListenAndServe returns only on error, so usually it blocks forever. + if err := s.ListenAndServe("127.0.0.1:80"); err != nil { + log.Fatalf("error in ListenAndServe: %s", err) + } +} |