两次接收Socket.IO消息

时间:2018-10-29 18:52:37

标签: javascript socket.io

单击按钮后,我通过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条“接收到文本数据”消息,但仅发出一条“文本”套接字消息?

1 个答案:

答案 0 :(得分:0)

emit将发送给包括发件人在内的所有客户端。

broadcast.emit会将消息发送给除新建连接之外的所有其他客户端

因此,在您的情况下,您都在使用发射,这两个点都使消息接收两次。