单击按钮后,我通过socket.io发出一条消息:
$("#view-button").click(function () {
console.log("button clicked");
var textInfo = {
msg: $("#message-field").val(),
date: $("#date-field").val()
}
socket.emit("text request", textInfo);
});
在我的index.js文件中,它收到了它:
socket.on("text request", function(textInfo) {
var textData;
if (date >= 6) {
textData = "beginning";
else {
textData = "end";
}
socket.emit("text", textData);
}
然后我收到“文本”套接字消息:
socket.on("text", function(textData) {
console.log(textData);
console.log("text data received");
});
但是,我两次收到“文本”套接字消息。我知道这是因为“接收到的文本数据”被两次打印到控制台。我检查了发出请求的功能和接收文本请求的功能,每个功能仅触发一次。我怎么会在控制台中看到2条“接收到文本数据”消息,但仅发出一条“文本”套接字消息?
答案 0 :(得分:0)
emit
将发送给包括发件人在内的所有客户端。
broadcast.emit
会将消息发送给除新建连接之外的所有其他客户端
因此,在您的情况下,您都在使用发射,这两个点都使消息接收两次。