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>