From df0232e24cb5e031fede66e6cbed01e74ed881cb Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Sat, 2 Nov 2019 07:26:58 -0600 Subject: [PATCH] Create dockerfile from dockerize.do and test WS --- .gitignore | 4 +++ Dockerfile | 16 ++++++++++ testdata/index.html | 36 +++++++++++++++++++++ testdata/ws.go | 76 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 132 insertions(+) create mode 100644 Dockerfile create mode 100644 testdata/index.html create mode 100644 testdata/ws.go diff --git a/.gitignore b/.gitignore index 30c1f41..98747e0 100755 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,10 @@ lz4 rclone rcloner +exec +exec-* +**/exec +**/exec-* Go cloudly dockfile diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..604c15a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ + +FROM golang:1.13-alpine as certs +RUN apk update && apk add --no-cache ca-certificates + +FROM busybox:glibc +RUN mkdir -p /var/log +WORKDIR /main +COPY --from=certs /etc/ssl/certs /etc/ssl/certs + +COPY . . + +ENV GOPATH="" +ENV MNT="/mnt/" +ENTRYPOINT ["/main/exec-rproxy3"] +CMD [] + diff --git a/testdata/index.html b/testdata/index.html new file mode 100644 index 0000000..a633b70 --- /dev/null +++ b/testdata/index.html @@ -0,0 +1,36 @@ + + + + + + + Go WebSocket Tutorial + + +

Hello World

+ + + + diff --git a/testdata/ws.go b/testdata/ws.go new file mode 100644 index 0000000..f9633c0 --- /dev/null +++ b/testdata/ws.go @@ -0,0 +1,76 @@ +package main + +import ( + "fmt" + "io/ioutil" + "log" + "net/http" + "time" + + "github.com/gorilla/websocket" +) + +func homePage(w http.ResponseWriter, r *http.Request) { + b, _ := ioutil.ReadFile("./index.html") + fmt.Fprintf(w, "%s", b) +} + +func setupRoutes() { + http.HandleFunc("/", homePage) + http.HandleFunc("/ws", wsEndpoint) +} + +func main() { + fmt.Println("Hello World") + setupRoutes() + log.Fatal(http.ListenAndServe(":8080", nil)) +} + +var upgrader = websocket.Upgrader{ + ReadBufferSize: 1024, + WriteBufferSize: 1024, +} + +func reader(conn *websocket.Conn) { + for { + // read in a message + messageType, p, err := conn.ReadMessage() + if err != nil { + log.Println(err) + return + } + // print out that message for clarity + fmt.Println(string(p)) + + if err := conn.WriteMessage(messageType, p); err != nil { + log.Println(err) + return + } + + } +} +func wsEndpoint(w http.ResponseWriter, r *http.Request) { + upgrader.CheckOrigin = func(r *http.Request) bool { return true } + + // upgrade this connection to a WebSocket + // connection + ws, err := upgrader.Upgrade(w, r, nil) + if err != nil { + log.Println(err) + } + + log.Println("Client Connected") + // listen indefinitely for new messages coming + // through on our WebSocket connection + go reader(ws) + for { + log.Println("writing...") + err = ws.WriteMessage(1, []byte("Hi Client!")) + log.Println("written") + if err != nil { + log.Println(err) + return + } + time.Sleep(time.Second) + } +}