Initial 2024-01-26
This commit is contained in:
84
cmpSnipper/cmpSnipperHttpServ.go
Normal file
84
cmpSnipper/cmpSnipperHttpServ.go
Normal file
@@ -0,0 +1,84 @@
|
||||
|
||||
package cmpSnipper
|
||||
|
||||
import (
|
||||
"net"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
type tcpKeepAliveListener struct {
|
||||
*net.TCPListener
|
||||
}
|
||||
|
||||
type cmpSnipperHttpServ struct {
|
||||
HttpListener net.Listener
|
||||
}
|
||||
|
||||
func (app *App) HttpServStart() error {
|
||||
var err error;
|
||||
|
||||
// var subjHttpPortString string = "7070";
|
||||
// var subjHttpPortUint16 uint16 = subjConf.Http.Port;
|
||||
|
||||
host, err := app.ConfGetStr("http", "host")
|
||||
|
||||
// fmt.Printf("Success load : %+v\n", host)
|
||||
|
||||
if err != nil {
|
||||
app.Log(err)
|
||||
return err
|
||||
}
|
||||
|
||||
port, err := app.ConfGetStr("http", "port")
|
||||
|
||||
// fmt.Printf("Success load : %+v\n", port)
|
||||
|
||||
if err != nil {
|
||||
app.Log(err)
|
||||
return err
|
||||
}
|
||||
|
||||
// if subjHttpPortUint16 == 0 || subjHttpPortString != strconv.FormatUint(uint64(subjHttpPortUint16), 10) {
|
||||
// fmt.Printf("Invalid http.port %s != %d\n", subjHttpPortString, subjHttpPortUint16)
|
||||
// app.Log(".Fatal");
|
||||
// }
|
||||
|
||||
|
||||
httpFileServer := http.FileServer(http.Dir("static"))
|
||||
http.Handle("/go-prefix/static/", http.StripPrefix("/go-prefix/static/", httpFileServer))
|
||||
|
||||
http.HandleFunc("/" , app.HttpReq);
|
||||
http.HandleFunc("/go-prefix/ws" , app.HttpWebSockHand)
|
||||
|
||||
var addr = host + ":" + port
|
||||
|
||||
server := &http.Server{Addr: addr}
|
||||
|
||||
app.Log("Listenning: '%s'", port);
|
||||
|
||||
app.cmpSnipperHttpServ.HttpListener, err = net.Listen("tcp", addr)
|
||||
|
||||
// defer app.HttpServClose()
|
||||
|
||||
if err != nil {
|
||||
app.Log(err)
|
||||
return err
|
||||
}
|
||||
|
||||
go func() {
|
||||
err = server.Serve(tcpKeepAliveListener{app.cmpSnipperHttpServ.HttpListener.(*net.TCPListener)})
|
||||
|
||||
if err == nil {
|
||||
app.Log(err)
|
||||
return // err
|
||||
}
|
||||
}()
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (app *App) HttpServStop() {
|
||||
app.cmpSnipperHttpServ.HttpListener.Close()
|
||||
|
||||
app.Log("Server Closed")
|
||||
}
|
Reference in New Issue
Block a user