websockets.html 1.86 KB
<!DOCTYPE html>
<html lang="de">
    <head>
        <meta charset="UTF-8">
        <title>Test WebSockets</title>
    </head>

    <body>
        <script>
            // sei "4711" die in einer vorangegangenen REST-Authentifizierung ermittelte "restSessionId"
            var restSessionId = 4711;

            var url = "ws://localhost:8080/swxercise/ws/api/v1/anEndpoint/" + restSessionId;
            var webSocket = new WebSocket(url);

            // Callback-Methoden für die WebSocket-Kommunikation
            webSocket.onopen = function(e) { onWebSocketOpen(e) };
            webSocket.onclose = function(e) { onWebSocketClose(e) };
            webSocket.onmessage = function(e) { onWebSocketMessage(e) };
            webSocket.onerror = function(e) { onWebSocketError(e) };

            function onWebSocketOpen(e) {
                console.log("WebSocket has been opened.");
            }

            function onWebSocketClose(e) {
                console.log("WebSocket has been closed.");
            }

            function onWebSocketMessage(e) {
                // JSON-String in ein JavaScript-Objekt konvertieren
                var json = JSON.parse(e.data);

                console.log("WebSocket Message '" + json.message + "' has been received.");
            }

            function onWebSocketError(e) {
                alert("WebSocket Error " + e + " has been thrown!");
            }

            function sendWebSocketMessage() {
                var json = {
                    "username": "admin",
                    "message": "Hello World!"
                }

                // JavaScript-Objekt in einen JSON-String konvertieren
                webSocket.send(JSON.stringify(json));

                console.log("Tried to send WebSocket Message.");
            }
        </script>
        <button onclick="sendWebSocketMessage()">Klick mich.</button>
    </body>
</html>