WebSockets

Exercising the basic WebSocket API.

socket Demo


html
<div style="max-width: 800px; margin: 0 auto; padding: 20px; font-family: monospace;">
  <h1>socket Demo</h1>
  <button id="run-connect">Connect</button>
  <button id="run-send">Send</button>
  <pre id="message-container" style="background: #f4f4f4; padding: 15px; margin-top: 20px; height: 500px; overflow: auto; border: 1px solid #ddd;"></pre>
</div>
js
let socket;
let n = 0;
function websocketConnect() {
    const socketUrl = window.location.toString().replace(/^http/, 'ws').split('#')[0];
    try {
        socket = new WebSocket(socketUrl);
        logMessage("socket created " + socketUrl);
    } catch (ex) {
        logMessage("error: socket creation failed", ex);
        return;
    }

    socket.addEventListener("open",(e) => {
        logMessage("socket opened");
    });
    socket.addEventListener("message",(e) => {
        logMessage("socket.message recieved: " + e.data)
    });
}

function websocketSend() {
    const msg = "hello " + n++;
    try{
        socket.send(msg);
        logMessage("socket.message send: " + msg);
    } catch (ex) {
        logMessage("socket.send failed " + ex);
    }
}

/**
 * Helper function to log messages to the UI
 */
function logMessage(message, ex) {
    const messageContainer = document.getElementById('message-container');
    if (messageContainer) {
        const messageElement = document.createElement('div');
        messageElement.textContent = message;
        messageContainer.appendChild(messageElement);
    }
    console.log(message, ex);
}

// Add event listener
document.getElementById('run-connect').addEventListener('click', websocketConnect);
document.getElementById('run-send').addEventListener('click', websocketSend);

© 2026 simpatico