HTML5 Websocket dentro de Webworker

Me las arreglé para hacer que los websockets funcionaran dentro de un trabajador web usando Chrome, pero solo para recibir datos. Cuando intento enviar datos, obtengo una excepción de DOM. ¿Alguien ha podido enviar datos?

Esto es lo que tengo para mi trabajador web.

self.addEventListener('message', function(e) {
var data = e.data;

switch (data.cmd) {
    case 'init':
        self.postMessage("Initialising Web Workers...");
        testWS();
        break;
    default:
        self.postMessage('Unknown command: ' + data.msg);
    };
}, false);

function testWS() {
    var connectionAddr = "ws://localhost:8003";
    var socket = new WebSocket(connectionAddr);
    socket.onmessage = function(event) {
        self.postMessage('Websocket : ' + event.data);
    };

    socket.onclose = function(event) {
    };

    function send(message) {
        socket.send(message);
    }

    send("hello"); //Here is where the exception is thrown
}

Respuestas a la pregunta(2)

Su respuesta a la pregunta