每个套接字都有可能超时吗?

时间:2018-02-10 07:20:00

标签: javascript node.js socket.io

是否可以根据具体操作为每个套接字创建超时?例如,假设用户单击一个按钮,在按下此按钮后,我发送到具有超时值的服务器(例如2000),在服务器端,我将其计数为0,并且不允许每个套接字单击该按钮如果服务器端的计数器不等于0,则按钮。计数本身并不是那么难,简单的间隔。但在客户端,它有点棘手,因为我不知道如何检查服务器端的计数器是否为0而不向服务器发出,如果用户在计数结束前单击按钮,则以某种方式禁止覆盖变量。有什么想法吗?

客户端:

socket.on("TimeoutResponse", function(data) {
  console.log(data);
});
socket.emit("Timeout", "10");

服务器:

socket.on('Timeout', function(data) {
  var interval = setInterval(function() {
    data--;
    socket.emit('TimeoutResponse', data);
    if (data <= "0") {
      clearInterval(interval);
      socket.emit('TimeoutResponse', "Done");
    }
  }, 1000);
});

0 个答案:

没有答案