| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- package main
- import (
- "embed"
- "io/fs"
- "net/http"
- )
- //go:embed web/*
- var webRootFS embed.FS
- type WebUI struct {
- fs fs.FS
- addr string
- mux *http.ServeMux
- }
- func NewWebUI(addr string) (*WebUI, error) {
- sub, err := fs.Sub(webRootFS, "web")
- if err != nil {
- return nil, err
- }
- mux := http.NewServeMux()
- fs := http.FileServer(http.FS(sub))
- mux.Handle("/static/css/", fs) ////////////// 页面样式
- mux.Handle("/static/js/", fs) ////////////// 页面脚本
- /////////////////////////////////////////////////////
- mux.HandleFunc("/login", loginHandler) //// 登录接口
- mux.HandleFunc("/logout", logoutHandler) //// 注销接口
- /////////////////////////////////////////////////////
- mux.HandleFunc("/getIMEI", getIMEIHandler) // 唯一编号
- /////////////////////////////////////////////////////
- mux.HandleFunc("/api/net/interfaces", netInterfaces)
- mux.HandleFunc("/api/net/routes", netRoutes)
- mux.HandleFunc("/api/net/dns", netDNS)
- return &WebUI{fs: sub, addr: addr, mux: mux}, nil
- }
- func (ui *WebUI) Start() error {
- startSessionCleaner() // session过期自动回收
- ui.mux.HandleFunc("/", ui.rootHandler)
- return http.ListenAndServe(ui.addr, ui.mux)
- }
|