mirror of
https://github.com/duanhf2012/origin.git
synced 2026-02-04 06:54:45 +08:00
优化httpserver
This commit is contained in:
@@ -3,14 +3,24 @@ package network
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
||||
type HttpServer struct {
|
||||
port uint16
|
||||
|
||||
handler http.Handler
|
||||
readtimeout time.Duration
|
||||
writetimeout time.Duration
|
||||
|
||||
httpserver *http.Server
|
||||
}
|
||||
|
||||
func (slf *HttpServer) Init(port uint16) {
|
||||
func (slf *HttpServer) Init(port uint16, handler http.Handler, readtimeout time.Duration, writetimeout time.Duration) {
|
||||
slf.port = port
|
||||
slf.handler = handler
|
||||
slf.readtimeout = readtimeout
|
||||
slf.writetimeout = writetimeout
|
||||
}
|
||||
|
||||
func (slf *HttpServer) HandleFunc(pattern string, handler func(http.ResponseWriter, *http.Request)) {
|
||||
@@ -23,7 +33,16 @@ func (slf *HttpServer) Start() {
|
||||
|
||||
func (slf *HttpServer) startListen() error {
|
||||
listenPort := fmt.Sprintf(":%d", slf.port)
|
||||
err := http.ListenAndServe(listenPort, nil)
|
||||
|
||||
slf.httpserver = &http.Server{
|
||||
Addr: listenPort,
|
||||
Handler: slf.handler,
|
||||
ReadTimeout: 10 * time.Second,
|
||||
WriteTimeout: 10 * time.Second,
|
||||
MaxHeaderBytes: 1 << 20,
|
||||
}
|
||||
|
||||
err := slf.httpserver.ListenAndServe()
|
||||
if err != nil {
|
||||
fmt.Printf("http.ListenAndServe(%d, nil) error\n", slf.port)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user