javascript - 为什么 Websocket onmessage 没有触发

标签 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>

但是,当我在本地主机中运行它时..输出就像这样

Connected
Message Sent

然后停下来。我知道 onmessage 事件没有触发,但我不知道为什么。可能是什么问题?谢谢

最佳答案

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

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

关于javascript - 为什么 Websocket onmessage 没有触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15918599/

相关文章:

javascript - 无法在数组内填充数组 - Javascript

javascript - 在没有调试器的情况下进行调试

javascript - 解析巨大的json数据

c - 运行 lwIP 1.3.2 的 stellaris 板上的 Websockets

javascript - Google Maps : Get click or marker (x, y) 标记点击监听器内的像素坐标

javascript - event.preventDefault() 与 return false(无 jQuery)

c++ - 如何使用 POCO 发送 websocket PONG 响应

python - 为什么 __init__() 缺少参数?

javascript - Action Cable 仅向客户端发送欢迎和 ping 消息

node.js - 带有 NGINX 代理和 websockets 的 Docker swarm