diff --git a/picture-upload.html b/picture-upload/picture-upload.html
similarity index 100%
rename from picture-upload.html
rename to picture-upload/picture-upload.html
diff --git a/wss-sse/index.html b/wss-sse/index.html
new file mode 100644
index 0000000..7243eae
--- /dev/null
+++ b/wss-sse/index.html
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+ CnJ
+
+
+
+ WS:
+ UserID:
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/wss-sse/script.js b/wss-sse/script.js
new file mode 100644
index 0000000..8323baa
--- /dev/null
+++ b/wss-sse/script.js
@@ -0,0 +1,101 @@
+let ws = null
+
+let wsPort = 3000
+let wsAddress = "ws://localhost:"
+//let wsAddress = "wss://alpha-ws.clickandjoin.umbach.dev"
+
+let sseAddress = "http://127.0.0.1:3005/"
+//let sseAddress = "https://alpha-sse.clickandjoin.umbach.dev/"
+
+const sseEnabled = false
+const wssEnabled = true
+
+window.onload = () => {
+ const msg = document.getElementById("msg")
+ const receiver = document.getElementById("receiver")
+
+ document.getElementById("btn-send").onclick = function() {
+ const chatMsg = {cmd: 2, rec: receiver.value, body: {msg: {"id": "1293", "body": msg.value}}}
+
+ ws.send(JSON.stringify(chatMsg))
+
+ console.log("Send:", chatMsg, msg.value)
+ }
+
+ document.getElementById("btn-clear").onclick = () => {
+ msg.value = ""
+ }
+
+ document.getElementById("copy-userid").onclick = () => {
+ navigator.clipboard.writeText(document.getElementById("userid").innerHTML)
+ console.log("copied to clipboard")
+ }
+
+ document.getElementById("btn-clear-rec").onclick = () => {
+ document.getElementById("receiver").value = ""
+ }
+
+ document.getElementById("change-ws").onclick = () => {
+ if (wsPort === 3000) {
+ wsPort = 3001
+ } else {
+ wsPort = 3000
+ }
+
+ if (ws.readyState == 1) {
+ ws.close()
+ }
+ }
+
+ connectWS()
+ connectSSE()
+}
+
+function connectSSE() {
+ if (!sseEnabled) return
+
+ var source = new EventSource(sseAddress)
+
+ source.onmessage = (e) => {
+ console.log(e.data)
+
+ let obj = JSON.parse(e.data)
+
+ console.log(obj.Body)
+ }
+}
+
+function connectWS() {
+ if (!wssEnabled) return
+
+ ws = new WebSocket(wsAddress + wsPort + "/?auth=sMURqnQt-88Ko-SaWu-2GLr-K2iQECXDyONm")
+
+ ws.onopen = () => {
+ console.info("ws open", document.getElementById("userid"))
+ document.getElementById("ws").innerHTML = ws.url
+ }
+
+ ws.onmessage = (msg) => {
+ console.log("rec msg:", msg.data)
+
+ let data = JSON.parse(msg.data)
+
+ // Only used here to test whether messages can be sent between the servers
+ if (data["Cmd"] == 99999) {
+ document.getElementById("userid").innerHTML = data["Body"]
+ }
+ }
+
+ ws.onclose = (e) => {
+ if (e.reason.code === 1005) return
+
+ console.log("ws closed", e)
+ document.getElementById("userid").innerHTML = ""
+ setTimeout(() => connectWS(), 100)
+ }
+
+ ws.onerror = (err) => {
+ console.warn("err:", err)
+ }
+}
+