2013-08-01 5 views
9

私は、Chromeを使用してデータを受信するためだけにウェブワーカーの内部でウェブソケットを処理することができました。データを送信しようとすると、DOM例外が発生し、誰かがデータを送信することができましたか?Webworker内のHTML5 Websocket

これは私の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 
} 

答えて

17

最初のメッセージを送信する前にonopen websocketイベントを待機する必要があります。

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

はい、ここに戻って見る前に、接続が開いていないことが問題だったと思っています。乾杯 – Jack

関連する問題