From 0c02661882e47891369abf2c505eb07b1c3a3d05 Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Thu, 13 Jan 2022 23:22:02 -0800 Subject: [PATCH] adding websocket and static server placeholders --- net/server/go.mod | 1 + net/server/go.sum | 2 ++ net/server/internal/api_status.go | 26 ++++++++++++++++++++++++-- net/server/internal/routers.go | 3 +++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/net/server/go.mod b/net/server/go.mod index b3176e93..f55cc0c4 100644 --- a/net/server/go.mod +++ b/net/server/go.mod @@ -4,6 +4,7 @@ go 1.17 require ( github.com/gorilla/mux v1.8.0 // indirect + github.com/gorilla/websocket v1.4.2 // indirect github.com/jinzhu/inflection v1.0.0 // indirect github.com/jinzhu/now v1.1.3 // indirect github.com/mattn/go-sqlite3 v1.14.9 // indirect diff --git a/net/server/go.sum b/net/server/go.sum index 973a48a0..50ac7204 100644 --- a/net/server/go.sum +++ b/net/server/go.sum @@ -2,6 +2,8 @@ github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSs github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= github.com/jinzhu/now v1.1.2/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= diff --git a/net/server/internal/api_status.go b/net/server/internal/api_status.go index 46f76a0b..515fcb9f 100644 --- a/net/server/internal/api_status.go +++ b/net/server/internal/api_status.go @@ -10,10 +10,32 @@ package databag import ( + "log" "net/http" + "github.com/gorilla/websocket" ) +var upgrader = websocket.Upgrader{} + func Status(w http.ResponseWriter, r *http.Request) { - w.Header().Set("Content-Type", "application/json; charset=UTF-8") - w.WriteHeader(http.StatusOK) + conn, err := upgrader.Upgrade(w, r, nil) + if err != nil { + log.Print("Error during connection upgradation:", err) + return + } + defer conn.Close() + + for { + messageType, message, err := conn.ReadMessage() + if err != nil { + log.Println("Error during message reading:", err) + break + } + log.Printf("Received: %s", message) + err = conn.WriteMessage(messageType, message) + if err != nil { + log.Println("Error during message writing:", err) + break + } + } } diff --git a/net/server/internal/routers.go b/net/server/internal/routers.go index d438e546..fb6ce062 100644 --- a/net/server/internal/routers.go +++ b/net/server/internal/routers.go @@ -49,6 +49,9 @@ func NewRouter() *mux.Router { Handler(handler) } + fs := http.FileServer(http.Dir("./")) + router.PathPrefix("/").Handler(http.StripPrefix("/", fs)) + return router }