2013-08-01 12 views
9

Udało mi się uzyskać dostęp do stron internetowych pracujących w sieci WWW za pomocą przeglądarki Chrome, ale tylko w celu odbierania danych. Kiedy próbuję wysłać dane, otrzymuję wyjątek DOM, czy ktoś zdołał wysłać dane?HTML5 Websocket in Webworker

To jest to, co mam dla mojego pracownika sieci.

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 
} 

Odpowiedz

17

Musisz wysłuchać zdarzenia onopen websocket przed wysłaniem pierwszej wiadomości.

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

Tak, masz rację, zorientowałeś się, że zanim się obejrzysz, połączenie nie zostało otwarte i to był problem. Twoje zdrowie – Jack

Powiązane problemy