Сервер с собственным реализованным обработчиком не прослушивает непрерывно - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь понять, как правильно реализовать http.Handler. Я написал код пакета barebone. Вот мой код пакета

package app

import (
    "fmt"
    "net/http"
)

//Handler is the handler function
type Handler struct {
}

func (h *Handler) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
    fmt.Println("Running ServeHTTP")
    rw.Write(([]byte)("Hello"))
    return
}

//NewHandler is
func NewHandler() *Handler {
    return &Handler{}
}

//Start will start the server
func (h *Handler) Start() {
    fmt.Println("Running Start")
    http.ListenAndServe("8080", h)

}

Я создал каталог в вышеупомянутом пакете, назвав его «examples». Я сделал файл main.go и записал его в основную функцию (после импорта пакета).

func main() {

    handler := app.NewHandler()

    handler.Start()
}

Но, когда я запускаю его с go run *.go, Программа прерывается практически сразу после записи Running Start на консоли. Разве это не должно слушать непрерывно. Что я делаю не так?

1 Ответ

3 голосов
/ 08 марта 2019

Функция http.ListenAndServe() возвращает ошибку.Вы можете просто проверить это, войдя в систему:

fmt.Println(http.ListenAndServe("8000", h))

, и вы увидите, что в вашем случае он возвращает ошибку, вызывающую возврат функции.

Все, что вам нужно сделать, это передать адрескак :8000

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...