我正在用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);
});
客户端
var socket = io();
socket.on('counter', function(count){
$('#messages').append($('<li>').text(count));
});
希望这会有所帮助,如果您有任何后续问题,请发表评论!