Websocket

HTML5 incorpora tecnología de websockets:

https://developer.mozilla.org/es/docs/Web/API/WebSocket

Usarla en javascript es fácil. Para el siguiente ejemplo utilizamos la página echo.websocket.org que acepta conexiones y devuelve lo mismo que le mandas (echo)

<!DOCTYPE html>
<meta charset=»utf-8″ />
<title>WebSocket Test</title>
<script language=»javascript» type=»text/javascript»>

var wsUri = «ws://echo.websocket.org/»;
var output;

function init()
{
output = document.getElementById(«output»);
testWebSocket();
}

function testWebSocket()
{
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) { onOpen(evt) };
websocket.onclose = function(evt) { onClose(evt) };
websocket.onmessage = function(evt) { onMessage(evt) };
websocket.onerror = function(evt) { onError(evt) };
}

function onOpen(evt)
{
writeToScreen(«CONNECTED»);
doSend(«WebSocket rocks»);
}

function onClose(evt)
{
writeToScreen(«DISCONNECTED»);
}

function onMessage(evt)
{
writeToScreen(‘<span style=»color: blue;»>RESPONSE: ‘ + evt.data+'</span>’);
websocket.close();
}

function onError(evt)
{
writeToScreen(‘<span style=»color: red;»>ERROR:</span> ‘ + evt.data);
}

function doSend(message)
{
writeToScreen(«SENT: » + message);
websocket.send(message);
}

function writeToScreen(message)
{
var pre = document.createElement(«p»);
pre.style.wordWrap = «break-word»;
pre.innerHTML = message;
output.appendChild(pre);
}

window.addEventListener(«load», init, false);

</script>

<h2>WebSocket Test</h2>

<div id=»output»></div>