Parcourir la source

introduce docker.go, work on broadcast

reid il y a 2 ans
Parent
commit
0dcb777469
3 fichiers modifiés avec 19 ajouts et 3 suppressions
  1. 15 2
      broadcast/broadcast.go
  2. 2 0
      main.go
  3. 2 1
      ws/ws.go

+ 15 - 2
broadcast/broadcast.go

@@ -2,6 +2,7 @@ package broadcast
 
 import (
 	"encoding/json"
+	"goseg/config"
 	"goseg/structs"
 	"log/slog"
 	"os"
@@ -21,7 +22,13 @@ var (
 
 func init(){
 	// initialize broadcastState global var
-	return
+	config := config.Conf()
+	broadcast, err := bootstrapBroadcastState(config)
+	if err != nil {
+		errmsg := fmt.Sprintf("Unable to initialize broadcast: %v",err)
+		panic(errmsg)
+	}
+	broadcastState = broadcast
 }
 
 // adds ws client
@@ -34,8 +41,14 @@ func UnregisterClient(conn *websocket.Conn) {
 	delete(clients, conn)
 }
 
+// take in config file and addt'l info to initialize broadcast
+func bootstrapBroadcastState(config structs.SysConfig) (structs.AuthBroadcast, error) {
+	var res structs.AuthBroadcast
+	return res, nil
+}
+
 // update broadcastState with a map of items
-func UpdateStateWithMap(values map[string]interface{}) error {
+func UpdateBroadcastState(values map[string]interface{}) error {
 	mu.Lock()
 	defer mu.Unlock()
 	v := reflect.ValueOf(&broadcastState).Elem()

+ 2 - 0
main.go

@@ -13,6 +13,7 @@ import (
 
 var (
 	logger = slog.New(slog.NewJSONHandler(os.Stdout, nil))
+	devMode = false
 )
 
 func main() {
@@ -20,6 +21,7 @@ func main() {
 		// trigger this with `./groundseg dev`
 		if arg == "dev" {
 			logger.Info("Starting GroundSeg in debug mode")
+			devMode = true
 		}
 	}
 	logger.Info("Starting GroundSeg")

+ 2 - 1
ws/ws.go

@@ -78,7 +78,8 @@ func WsHandler(w http.ResponseWriter, r *http.Request) {
 			logger.Info("Support")
 		case "broadcast":
 			if err := broadcast.BroadcastToClients(); err != nil {
-				logger.Error("Unable to broadcast")
+				errmsg := fmt.Sprintf("Unable to broadcast to peer(s): %v", err)
+				logger.Error(errmsg)
 			}
 		default:
 			errmsg := fmt.Sprintf("Unknown request type:", payload.Type)