You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
package xserver
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"net/http"
|
|
|
|
"time"
|
|
|
|
)
|
|
|
|
|
|
|
|
type Http struct {
|
|
|
|
server *http.Server
|
|
|
|
}
|
|
|
|
|
|
|
|
func (h *Http) Start() error {
|
|
|
|
return h.server.ListenAndServe()
|
|
|
|
}
|
|
|
|
|
|
|
|
func (h *Http) Shutdown(ctx context.Context) error {
|
|
|
|
return h.server.Shutdown(ctx)
|
|
|
|
}
|
|
|
|
|
|
|
|
func NewHttp(httpHost string, app *gin.Engine) *Http {
|
|
|
|
return &Http{
|
|
|
|
server: &http.Server{
|
|
|
|
Addr: httpHost,
|
|
|
|
Handler: app,
|
|
|
|
ReadTimeout: 60 * time.Second,
|
|
|
|
WriteTimeout: 60 * time.Second,
|
|
|
|
MaxHeaderBytes: 20 << 20,
|
|
|
|
},
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (c *Http) Name() string {
|
|
|
|
return "http"
|
|
|
|
}
|