aboutsummaryrefslogtreecommitdiff
path: root/server_example_test.go
diff options
context:
space:
mode:
authorGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-29 23:13:57 +0200
committerGravatar Aliaksandr Valialkin <valyala@gmail.com> 2015-11-29 23:13:57 +0200
commit8a57f94be9d0bed35318259e931dea5a1045a4f5 (patch)
tree9f76485ad703b26430b40a83ee213430289412a4 /server_example_test.go
parentProperly remove hijack hander from RequestCtx (diff)
downloadfasthttp-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.go83
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)
+ }
+}