2013-08-01 17 views
9

Sono riuscito a far funzionare websocket all'interno di un webworker utilizzando Chrome, ma solo per la ricezione di dati. Quando provo a inviare dati ottengo un'eccezione DOM, qualcuno è riuscito a inviare dati?HTML5 Websocket all'interno di Webworker

Questo è ciò che ho per il mio web worker.

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 
} 

risposta

17

È necessario ascoltare l'evento on-line websocket prima di inviare il primo messaggio.

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

Sì, si è appena capito che prima di guardare indietro, la connessione non era aperta e questo era il problema. Saluti – Jack

Problemi correlati