Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript socket.io中的倒计时不会同时开始_Javascript_Node.js_Socket.io_Emit - Fatal编程技术网

Javascript socket.io中的倒计时不会同时开始

Javascript socket.io中的倒计时不会同时开始,javascript,node.js,socket.io,emit,Javascript,Node.js,Socket.io,Emit,我正在使用emit方法在我的android应用程序上开始倒计时 我的问题是,球员和对手的倒计时并不是同时开始的。我的游戏将播放一首随机歌曲,并给第一个猜对的玩家打分 我听说这取决于他们的潜伏期。我找不到任何解决办法 var countdown = 3; var countdownInterval = setInterval(function () { socket.emit('countdown', countdown); // to player socket.broadcas

我正在使用emit方法在我的android应用程序上开始倒计时

我的问题是,球员和对手的倒计时并不是同时开始的。我的游戏将播放一首随机歌曲,并给第一个猜对的玩家打分

我听说这取决于他们的潜伏期。我找不到任何解决办法

var countdown = 3;
var countdownInterval = setInterval(function () {
    socket.emit('countdown', countdown); // to player
    socket.broadcast.to(opponent).emit('countdown', countdown); // to opponent

    if (countdown == 0) {
        clearInterval(countdownInterval);
    }

    countdown--;

}, 1000);

当客户端确认接收到消息时,您可能希望得到回调(在您的情况下,减少计数器变量)

为此,只需将函数作为
.send
.emit
的最后一个参数传递即可。使用
.emit
时,确认由您完成,这意味着您也可以传递数据:

var countdown = 3;
var countdownInterval = setInterval(function () {
    socket.emit('countdown', countdown, function(){ 
      if (countdown == 0)  clearInterval(countdownInterval); 
      countdown--;
      socket.broadcast.to(opponent).emit('countdown', countdown); // to opponent   
    }); // to player


}, 1000);