Socket.io 为单个请求发送多条消息

2024-03-23

我在 NodeJS + Typescript 项目中使用 Socket.io,其中客户端向服务器发送一条消息,然后使用套接字将相同的消息发送回客户端。然而,每次我向服务器发送一条新消息时,服务器发回消息的次数都会增加 1 - 这不是我对其进行编程的工作方式。例如,我第一次发送消息“x” - 服务器返回消息“x”。下次我发送消息时,服务器会返回该消息两次。下次又发生3次,直到页面刷新时,又回到1次。我不知道出了什么问题。这是代码:

Client:

$("#send").click(function(){
        alert("Sending : " + $("#text").val());
        socket.emit("toServer", {
            message: $("#text").val()
        });
        socket.on('toClient', function (data) {
            alert (data.message);
        });
    });

服务器(app.ts):

function startSocket() {
    var io = require('socket.io').listen(server, {log : false});
    io.sockets.on('connection', function (socket) {
        socket.on('toServer', function (data) {
            console.log(data);
            socket.emit('toClient', data);
        });
    });
}

startSocket();

通过在单击事件中注册事件处理程序,您将在每次单击发生时创建一个新的注册。这将导致所有这些事件处理程序(取决于您单击的次数)在服务器发送消息时触发。

简而言之:服务器仅发送一次,您多次接收它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Socket.io 为单个请求发送多条消息 的相关文章

随机推荐