HTML5 Websocket в Webworker

мне удалось заставить websockets работать внутри webworker с помощью Chrome, но только для получения данных. Когда я пытаюсь отправить данные, я получаю исключение DOM, кому-нибудь удалось отправить данные?

Это то, что у меня есть для моего веб-работника.

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
}

1 ответов


перед отправкой первого сообщения необходимо прослушать событие onopen websocket.

socket.onopen = function(){
    // send some message   
};