Strumenti Utente

Strumenti Sito


programmazione:javascript:test_websocket

Una semplice pagina per testare un server websocket

Autore: Fabio Di Matteo
Ultima revisione: 24/04/2026 08:52

Il codice

<!doctype html>
<html lang="it">
 
<head>
  <meta charset="utf-8" />
  <title>WebSocket Client Semplice</title>
</head>
 
<body>
  <h1>WebSocket Client Semplice</h1>
  <div>
    <label>URI WebSocket: <input id="uri" value="ws://localhost:9001" size="40"></label>
    <button id="connect">Connetti</button>
    <button id="disconnect" disabled>Disconnetti</button>
  </div>
 
  <div>
    <input id="message" placeholder="Messaggio" size="40"  value='{"name":"miafunzione", "params" :"param1,param2,param"}'>
    <button id="send" disabled>Invia</button>
  </div>
 
  <div id="log" style="height:300px;width:800px; overflow:auto; border:1px solid #ccc; padding:8px;"></div>
 
  <script>
    let ws = null;
    const uriInput = document.getElementById('uri');
    const connectBtn = document.getElementById('connect');
    const disconnectBtn = document.getElementById('disconnect');
    const sendBtn = document.getElementById('send');
    const msgInput = document.getElementById('message');
    const logEl = document.getElementById('log');
 
    function log(m){
      let o = document.getElementById("log");
      o.insertAdjacentHTML('beforeend', '<p>'+m+'</p');
    }
 
    connectBtn.addEventListener('click', () => {
      const url = uriInput.value.trim();
      if (!url) {log('Inserisci un URI valido'); return;}
      ws = new WebSocket(url);
 
      ws.addEventListener('open', () => {
        log('Connesso a '+ url);
        connectBtn.disabled = true;
        disconnectBtn.disabled = false;
        sendBtn.disabled = false;
      });
 
      ws.addEventListener('message', (ev) => {
        log('Ricevuto: '+ ev.data);
      });
 
      ws.addEventListener('error', (ev) => {
        log('Errore WebSocket', ev);
      });
 
      ws.addEventListener('close', (ev) => {
        log('Connessione chiusa '+ 'code=' + ev.code+ ' reason=' + ev.reason);
        connectBtn.disabled = false;
        disconnectBtn.disabled = true;
        sendBtn.disabled = true;
        ws = null;
      });
    });
 
    disconnectBtn.addEventListener('click', () => {
      if (ws) {
        ws.close(1000, 'Chiusura volontaria');
      }
    });
 
    sendBtn.addEventListener('click', () => {
      const m = msgInput.value;
      if (!ws || ws.readyState !== WebSocket.OPEN) {
        log('WebSocket non connesso');
        return;
      }
      ws.send(m);
      log('Inviato:'+ m);
      msgInput.value = '';
    });
 
    // Optional: invia con Enter
    msgInput.addEventListener('keydown', (e) => {
      if (e.key === 'Enter') sendBtn.click();
    });
  </script>
</body>
 
</html>
programmazione/javascript/test_websocket.txt · Ultima modifica: 24/04/2026 08:55 da Fabio Di Matteo