From a6b9835c1d8f2d50323c434b169e576a5cef4ed3 Mon Sep 17 00:00:00 2001
From: Thomas Schneider <qsx@chaotikum.eu>
Date: Sat, 4 Jun 2022 17:22:03 +0200
Subject: [PATCH] Add test web page

---
 index.html | 21 +++++++++++++++++++++
 server.go  | 14 ++++++++++++++
 2 files changed, 35 insertions(+)
 create mode 100644 index.html

diff --git a/index.html b/index.html
new file mode 100644
index 0000000..f12df42
--- /dev/null
+++ b/index.html
@@ -0,0 +1,21 @@
+<!doctype html>
+<html>
+  <head>
+    <meta charset="utf-8"/>
+    <title>WebSocket image server test client</title>
+    <script>
+      document.addEventListener('DOMContentLoaded', () => {
+	  var img = document.getElementById("jpeg");
+	  var ws = new WebSocket("ws://{{.}}/video");
+	  ws.onmessage = (event) => {
+	      img.src = URL.createObjectURL(event.data);
+	  };
+      });
+    </script>
+  </head>
+  <body>
+    <h1>WebSocket image server test client</h1>
+
+    <img src="" id="jpeg" />
+  </body>
+</html>
diff --git a/server.go b/server.go
index 8b51a55..0cd5f3e 100644
--- a/server.go
+++ b/server.go
@@ -2,6 +2,7 @@ package main
 
 import (
 	"flag"
+	"html/template"
 	"io"
 	"log"
 	"net/http"
@@ -26,6 +27,7 @@ func jpeg(w http.ResponseWriter, r *http.Request) {
 		log.Print("upgrade: ", err)
 		return
 	}
+	defer log.Printf("closing websocket with %v", c.RemoteAddr())
 	defer c.Close()
 	log.Printf("initialised websocket with %v", c.RemoteAddr())
 
@@ -50,6 +52,18 @@ func main() {
 	}
 	f.Close()
 
+	index, err := template.ParseFiles("index.html")
+	if err != nil {
+		log.Fatal(err)
+	}
+
+	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
+		err = index.Execute(w, r.Host)
+		if err != nil {
+			log.Print(err)
+		}
+	})
+
 	http.HandleFunc("/jpeg", jpeg)
 
 	log.Printf("listening on %s", *listen)
-- 
GitLab