[英]Get a scores of all users from the room after game completes in socket.io
我正在做一个多人游戏,其中将有四个房间,每个房间将有多个正在玩游戏的客户。 完成游戏后,我想将所有用户的分数发送到服务器,将其存储在数组中,进行比较并返回赢家的名字。 因此,完成游戏后,如何从会议室中获得所有用户的分数。
var delayInMilliseconds = 2000;
var hit = 0;
$('#hit').click(function()
{
hit++;
});
var modal = document.getElementById('myModal');
var btn = document.getElementsByClassName("common");
var span = document.getElementsByClassName("close")[0];
setTimeout(function()
{
var seconds_left = 15;
var interval = setInterval(function()
{
document.getElementById('timer').innerHTML = --seconds_left;
if (seconds_left <= 0)
{
// document.getElementById('timer').innerHTML = "Time's up!";
clearInterval(interval);
console.log(hit);
$('#hit').attr("disabled", true);
$('#score').html(hit);
modal.style.display = "block";
}
}, 1000);
}, delayInMilliseconds);
上面是游戏的客户端代码,游戏将在15秒后完成,所以我的想法是我可以在if(seconds_left <= 0)
发送数据,但是我如何从房间中获取所有客户端的分数。
首先,您必须以某种方式识别用户。 让我们将它们保存到具有关键userName和值得分的名为user的对象中。 就像这样: var users = { user1: 12, user2: 9 };
。
比我们必须将此数据发送到服务器。 我们可以像socket.io官方文档中的示例那样进行操作
<script>
var socket = io('http://localhost');
socket.on('connection', function () {
console.log('Socket connected');
});
// here is your code to handle users actions.
// When the game is finished, you do it like this
socket.emit('game finished', users);
</script>
在服务器端,您可以使用要解析的数据监听game finished
事件。
另外,您可以使用ajax
向服务器发出请求以处理分数数据,可以阅读有关jQuery 实现或本机JS的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.