Feature(Go): Embed and serve web UI assets

This commit is contained in:
yuanyuanxiang
2026-05-17 20:56:34 +02:00
committed by yuanyuanxiang
parent 2ed86b5e08
commit 534d3650c4
11 changed files with 449 additions and 11 deletions

View File

@@ -14,6 +14,7 @@ import (
"github.com/yuanyuanxiang/SimpleRemoter/server/go/logger"
"github.com/yuanyuanxiang/SimpleRemoter/server/go/protocol"
"github.com/yuanyuanxiang/SimpleRemoter/server/go/server"
"github.com/yuanyuanxiang/SimpleRemoter/server/go/web"
)
// MyHandler implements the server.Handler interface
@@ -232,6 +233,7 @@ func main() {
// Parse command line flags
portStr := flag.String("port", "6543", "Server listen ports (semicolon-separated, e.g. 6543;6544;6545)")
flag.StringVar(portStr, "p", "6543", "Server listen ports (shorthand)")
httpPort := flag.Int("http-port", 8080, "HTTP server port for web UI (0 to disable)")
noConsole := flag.Bool("no-console", false, "Disable console output (for daemon mode)")
flag.Parse()
@@ -288,14 +290,23 @@ func main() {
servers = append(servers, srv)
}
// Start all servers
// Start all TCP servers
for _, srv := range servers {
if err := srv.Start(); err != nil {
log.Fatal("Failed to start server: %v", err)
}
}
// Start HTTP server for web UI (Phase 1: serves index.html only)
httpSrv := web.New(*httpPort, log.WithPrefix("Web"))
if err := httpSrv.Start(); err != nil {
log.Fatal("Failed to start HTTP server: %v", err)
}
fmt.Printf("Server started on port(s): %v\n", ports)
if *httpPort != 0 {
fmt.Printf("Web UI on http://localhost:%d/\n", *httpPort)
}
fmt.Println("Logs are written to: logs/server.log")
fmt.Println("Press Ctrl+C to stop...")
@@ -305,6 +316,7 @@ func main() {
<-sigChan
fmt.Println("\nShutting down...")
httpSrv.Stop()
for _, srv := range servers {
srv.Stop()
}