2013-04-10 52 views
0

這是我的代碼,來自書籍「HTML5 websocket權威指南」。爲什麼Websocket onmessage沒有觸發

.... 
<div id="output"></div> 
<script> 
function setup() { 
output = document.getElementById("output"); 
ws = new WebSocket("ws://localhost:7777"); 

ws.onopen = function(e) { 
    log("Connected"); 
    sendMessage("Hello Websocket!"); 
} 

ws.onclose = function(e){ 
    log("Disconnected: " + e.reason); 
} 

ws.onerror = function(e){ 
    log("Error "); 
} 

ws.onmessage = function(e) { 
    log("Message received: " + e.data); 
    ws.close(); 
} 

} 

function sendMessage(msg){ 
ws.send(msg); 
    log("Message Sent"); 
} 

function log(s){ 
var p = document.createElement("p"); 
p.style.wordWrap = "break-word"; 
p.textContent = s; 
output.appendChild(p); 

console.log(s); 
} 
setup(); 
</script> 

但是,當我在本地主機上運行它..輸出就這樣

Connected 
Message Sent 

,並停止,直到。我知道事件onmessage不是射擊,但我不知道爲什麼。可能是什麼問題?謝謝

回答

4

onmessage只會在服務器向客戶端發送消息時觸發,而不是在客戶端向服務器發送消息時(這是您正在執行的操作)。

如果你的服務器發回了一條消息,並且你的客戶端沒有收到消息,那麼你將需要提供更多的上下文(服務器實現等)。

相關問題