为什么Websocket onmessage没有解雇

时间:2013-04-10 06:32:52

标签: javascript websocket

我的代码来自书籍“HTML5 websocket的权威指南”。

....
<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>

但是,当我在localhost中运行它时...输出就像这样

Connected
Message Sent

然后停下来。我知道事件的消息没有解雇,但我不知道为什么。可能是什么问题?感谢

1 个答案:

答案 0 :(得分:4)

onmessage只会在服务器向客户端发送消息时触发,而不是在客户端向服务器发送消息时(这就是您正在做的事情)。

如果您的服务器正在发回消息而您的客户端没有接收该消息,那么您将需要提供更多的上下文(服务器实现等)。