Node.js& Socket.io - 来自cmd的邮件多次发送

时间:2015-07-18 22:58:23

标签: javascript node.js sockets

我创建了一个功能,因此您可以从CMD向聊天发送消息,并将其作为服务器进行广播。但是,我遇到了一个问题。每次重新加载页面时,都会多次发送消息。因此,如果我重新加载页面5次,服务器消息将被发送6次。 (计算第一次加载)

这是一个例子: enter image description here enter image description here enter image description here

以下是完整代码的一个分支。我该如何解决这个问题?

<击> https://github.com/Crypting/chat/tree/server_messages

编辑:问题已解决,因此分支机构将不再显示问题。如果有人遇到此问题,我已将代码上传到gist - https://gist.github.com/Crypting/dc5167c8ca3b18950b39

1 个答案:

答案 0 :(得分:2)

好的,取自你的app.js:

io.on('connection', function (socket) {
    ...
    var stdin = process.stdin, stdout = process.stdout;

    stdin.resume();
    stdin.on('data', function(data) {
        ...
    });
});

字面意思是:每次有人连接时,你都会向stdin添加另一个监听器。 而是将其移出连接处理程序:

io.on('connection', function (socket) {
    ...
});

var stdin = process.stdin, stdout = process.stdout;

stdin.resume();
stdin.on('data', function(data) {
    ...
});