| 100 | ` |
| 101 | |
| 102 | func StartHelloWorldServer(log *zerolog.Logger, listener net.Listener, shutdownC <-chan struct{}) error { |
| 103 | log.Info().Msgf("Starting Hello World server at %s", listener.Addr()) |
| 104 | serverName := defaultServerName |
| 105 | if hostname, err := os.Hostname(); err == nil { |
| 106 | serverName = hostname |
| 107 | } |
| 108 | |
| 109 | upgrader := websocket.Upgrader{ |
| 110 | ReadBufferSize: 1024, |
| 111 | WriteBufferSize: 1024, |
| 112 | } |
| 113 | |
| 114 | muxer := http.NewServeMux() |
| 115 | muxer.HandleFunc(UptimeRoute, uptimeHandler(time.Now())) |
| 116 | muxer.HandleFunc(WSRoute, websocketHandler(log, upgrader)) |
| 117 | muxer.HandleFunc(SSERoute, sseHandler(log)) |
| 118 | muxer.HandleFunc(HealthRoute, healthHandler()) |
| 119 | muxer.HandleFunc("/", rootHandler(serverName)) |
| 120 | httpServer := &http.Server{Addr: listener.Addr().String(), Handler: muxer} |
| 121 | go func() { |
| 122 | <-shutdownC |
| 123 | _ = httpServer.Close() |
| 124 | }() |
| 125 | |
| 126 | err := httpServer.Serve(listener) |
| 127 | return err |
| 128 | } |
| 129 | |
| 130 | func CreateTLSListener(address string) (net.Listener, error) { |
| 131 | certificate, err := tlsconfig.GetHelloCertificate() |