<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>WebSocket Test</title> </head> <body> <h1>WebSocket Client</h1> <div> <label for="message">Message: </label> <input type="text" id="message" placeholder="Enter a message" onsubmit="sendMessage()"> <button onclick="sendMessage()">Send</button> </div> <div id="output"></div> <script> const ws = new WebSocket('ws://localhost:8887'); let isComposing = false; ws.onopen = function () { logMessage('Connected to the WebSocket server'); }; ws.onmessage = function (event) { logMessage('Received: ' + event.data); }; ws.onclose = function () { logMessage('Disconnected from the WebSocket server'); }; ws.onerror = function (error) { logMessage('Error: ' + error.message); }; document.getElementById('message').addEventListener('keydown', function(event) { if (event.key === 'Enter' && !isComposing) { sendMessage(); } }); document.getElementById('message').addEventListener('compositionstart', function() { isComposing = true; }); document.getElementById('message').addEventListener('compositionend', function() { isComposing = false; }); function sendMessage() { const message = document.getElementById('message').value; ws.send(message); logMessage('Sent: ' + message); } function logMessage(message) { const output = document.getElementById('output'); const messageElement = document.createElement('div'); messageElement.textContent = message; output.appendChild(messageElement); } window.onload = function() { document.getElementById('message').focus(); }; </script> </body> </html>