2013-08-01 5 views
9

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

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

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 
} 

ответ

17

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

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

Да, вы правильно поняли это, прежде чем оглянуться назад, соединение не было открытым, и в этом была проблема. ура – Jack

Смежные вопросы