簡體   English   中英

使用Socket.io和Node.js廣播倒數計時器

[英]Countdown Timer Broadcast with Socket.io and Node.js

我正在使用Node.js構建我的應用程序的新版本。 在下面,您將找到我的獲勝者倒計時,其中console.log(counter)的輸出需要與Socket.io一起廣播給所有客戶端。

var counter = 10;
var WinnerCountdown = setInterval(function(){
  console.log(counter);
  counter--

  if (counter === 0) {
    console.log("Congratulations You WON!!");
    clearInterval(WinnerCountdown);
  }
}, 1000);

我的Socket.IO代碼如下:

setInterval(() => {
  wss.clients.forEach((client) => {
    client.send(new Date().toTimeString());
  });
}, 1000);

我應該怎樣替換new Date().toTimeString() ,以便它將顯示console.log的消息?

要向所有客戶廣泛投放,您可以使用io.sockets.emit('counter', counter); 這是一個腳本示例,可用於實現您想做的事情(我認為):

server.js

io.on('connection', function(socket){
  var counter = 10;
  var WinnerCountdown = setInterval(function(){
    io.sockets.emit('counter', counter);
    counter--
    if (counter === 0) {
      io.sockets.emit('counter', "Congratulations You WON!!");
      clearInterval(WinnerCountdown);
    }
  }, 1000);
});

client.js

var socket = io();

socket.on('counter', function(count){
  $('#messages').append($('<li>').text(count));
});

希望這會有所幫助,如果您有任何后續問題,請發表評論!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM