Node.js nodeJS setinterval不';t退出回调

Node.js nodeJS setinterval不';t退出回调,node.js,socket.io,setinterval,Node.js,Socket.io,Setinterval,我正在用socket.io编写一个包含setInterval函数的程序。 但我一直得到错误的答案,然后我编写了一个基本设置,其中有两个计数器,一个客户端和一个服务器端,它们必须每500毫秒刷新一次,但只有客户端将数据记录在控制台中。这就像setInterval阻止其他代码运行一样 这是密码 服务器 io.on('connect', function(socket){ console.log("test"); io.sockets.on('count', func

我正在用socket.io编写一个包含setInterval函数的程序。 但我一直得到错误的答案,然后我编写了一个基本设置,其中有两个计数器,一个客户端和一个服务器端,它们必须每500毫秒刷新一次,但只有客户端将数据记录在控制台中。这就像setInterval阻止其他代码运行一样

这是密码

服务器

io.on('connect', function(socket){
        console.log("test");

        io.sockets.on('count', function (data) {
            console.log(data);
        });

    setInterval(function(){var count=0;
        for (i = 0; i < 10; i++) {
            count = count + 1;
            socket.emit('count', count);
        }},500);
});`
io.on('connect',函数(套接字){
控制台日志(“测试”);
io.sockets.on('count',函数(数据){
控制台日志(数据);
});
setInterval(函数(){var count=0;
对于(i=0;i<10;i++){
计数=计数+1;
socket.emit('count',count);
}},500);
});`
客户

<script>
    var socket = io();
    var count=0;

    socket.on('count', function (data) {
            console.log(data);
        });
    for(i=0;i<10;i++){
        count = count +1;
        socket.emit('count',count);
    }

    </script>

var socket=io();
var计数=0;
socket.on('count',函数(数据){
控制台日志(数据);
});

对于(i=0;i请在日志中找到相同的解决方案,并提供更多详细信息:-
server.js

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

io.on('connection', function(socket){
  socket.on('count', function(data){
    // client message will be logged here
    console.log(" client message " + data);
  });

  setInterval(function(){var count=0;
    for (var i = 0; i < 10; i++) {
      count = count + 1;
      socket.emit('count', " server count " + count);
      console.log(" server message " + count); // this i server message sent to client
    }},500);
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});
您的解决方案是正确的,但请注意,当客户端发出消息时,它将显示在节点终端或控制台上,当服务器发出消息时,它将显示在浏览器控制台上


希望这能对您有所帮助。

我在服务器上没有看到{console.log(“client message”+data);}这是服务器端io.sockets.on('count',function(data){console.log(data);})的客户端消息;是的,但这不应该登录到我的nodeJs控制台吗?是的,它会登录到nodeJs控制台,但不会登录到浏览器控制台。我写了上面的代码来帮助您理解客户端信息将被传递到服务器,这就是为什么我要放置console.log(“客户端消息”),请让我知道您是否需要关于这一点的更多信息。我在每个日志后都更新了评论,如果您在这方面有任何问题,请让我知道。
 // Add a connect listener
  socket.on('connect',function() {
    console.log('Client has connected to the server!');
  });
  // Add a disconnect listener
  socket.on('disconnect',function() {
    console.log('The client has disconnected!');
  });

  var count=0;

  socket.on('count', function(data){
    console.log("server message" +  data); // this is message come from server
  });

  for(var i=0;i<10;i++){
    count = count +1;
    socket.emit('count',count); // client sends this information to server.
  }