Browse Source

d02 Добавление кода PWA-клиента

SVI 2 years ago
parent
commit
4f2e77ab21
2 changed files with 56 additions and 6 deletions
  1. 46 0
      server/serv_pwa/serv_pwa.go
  2. 10 6
      server/server.go

+ 46 - 0
server/serv_pwa/serv_pwa.go

@@ -1,2 +1,48 @@
 // package serv_pwa -- сервер PWA для клиента
 package serv_pwa
+
+import (
+	"fmt"
+	"net/http"
+	"os"
+
+	"github.com/maxence-charriere/go-app/v9/pkg/app"
+)
+
+type hello struct {
+	app.Compo
+}
+
+func (h *hello) Render() app.UI {
+	return app.H1().Text("Hello World!")
+}
+
+// ServPwa -- встренный сервер HTTP для обработки запросов PWA-клиента
+type ServPwa struct {
+}
+
+// NewServPwa -- возвращает новый PWA-сервер
+func NewServPwa() *ServPwa {
+	sf := &ServPwa{}
+	return sf
+}
+
+func (sf *ServPwa) Run() error {
+
+	app.Route("/", &hello{})
+	app.RunWhenOnBrowser()
+
+	http.Handle("/", &app.Handler{
+		Name:        "Hello",
+		Description: "An Hello World! example",
+	})
+
+	port := os.Getenv("SERVER_HTTP_PORT")
+	if port == "" {
+		return fmt.Errorf("ServHttp.Run(): env SERVER_HTTP_PORT not defined")
+	}
+	if err := http.ListenAndServe(port, nil); err != nil {
+		return fmt.Errorf("ServHttp.Run(): in serve HTTP, err=\n\t%w", err)
+	}
+	return nil
+}

+ 10 - 6
server/server.go

@@ -8,6 +8,7 @@ import (
 	"wartank/pkg/store"
 	"wartank/pkg/types"
 	"wartank/server/serv_bots"
+	"wartank/server/serv_pwa"
 	"wartank/server/serv_rpc"
 )
 
@@ -17,6 +18,7 @@ type Server struct {
 	store    types.IStore
 	servRpc  *serv_rpc.ServRpc
 	servBots *serv_bots.ServBots
+	servPwa  *serv_pwa.ServPwa
 }
 
 // NewServer -- возвращает новый объект приложения
@@ -26,7 +28,8 @@ func NewServer() (sf *Server, err error) {
 		return nil, fmt.Errorf("NewServer(): in make IKernel, err=\n\t%w", err)
 	}
 	sf = &Server{
-		Kernel: kernel,
+		Kernel:  kernel,
+		servPwa: serv_pwa.NewServPwa(),
 	}
 	sf.store, err = store.NewStore(sf)
 	if err != nil {
@@ -36,10 +39,10 @@ func NewServer() (sf *Server, err error) {
 	if err != nil {
 		return nil, fmt.Errorf("NewServer(): in create ServBots, err=%w", err)
 	}
-	sf.servRpc, err = serv_rpc.NewServRpc(sf)
-	if err != nil {
-		return nil, fmt.Errorf("NewServer(): in make IServRpc, err=\n\t%w", err)
-	}
+	// sf.servRpc, err = serv_rpc.NewServRpc(sf)
+	// if err != nil {
+	// 	return nil, fmt.Errorf("NewServer(): in make IServRpc, err=\n\t%w", err)
+	// }
 	return sf, nil
 }
 
@@ -55,7 +58,8 @@ func (sf *Server) Run() error {
 		return fmt.Errorf("Server.Run(): in load bots, err=\n\t%w", err)
 	}
 
-	go sf.servRpc.Run()
+	// go sf.servRpc.Run()
+	go sf.servPwa.Run()
 	<-sf.Done()
 	// if err := sf._erverWeb.Error(); err != nil {
 	// 	return fmt.Errorf("Server.Run(): in work IServHttp, err=\n\t%w", err)