我正在开发一个实时多人游戏测验游戏,其中游戏室中连接的玩家数量限制为2,这意味着每个玩家只有一个对手。我正在尝试同时显示玩家和# 39;每次他们点击一个问题的选项时,两个玩家都得分;像这样:得分1:20得分2:10类似于Quizup游戏,但我无法显示对手的得分。 我已经使用了nodejs,socket.io用于服务器端,javascript用于前端。我已经尝试每次都将分数发送到服务器,服务器将分数存储在mongodb服务器中,但我无法获取相应的分数每个球员。
game.html和main.js(客户端):
function answer(ans) {
var z = document.getElementById('option' + ans);
var choice = z.innerHTML;
var a = new Date().getTime();
var diff1 = sTime - a;
var seconds1 = 0 - Math.floor(diff1 / 1000);
console.log(seconds1);
Disable_Buttons();
var l = 10 - seconds1;
if (choice == questions[x].answer) {
scores += l;
} else {
scores = scores;
}
socket.emit('score',{
scores:scores,
id:socket.id
});
socket.on('leaderboard',(data)=>{
document.getElementById('scores').innerHTML = 'SCORE1: '+data.points;
document.getElementById('all_scores').innerHTML = 'SCORE2: '+ data.points;
});

<div class="buttons">
<button id="button0" onclick="answer('0')" style="display:none"><span id="option0"></span></button> <br>
<button id="button1" onclick="answer('1')" style="display:none"><span id="option1"></span></button> <br>
<button id="button2" onclick="answer('2')" style="display:none"><span id="option2"></span></button> <br>
<button id="button3" onclick="answer('3')" style="display:none"><span id="option3"></span></button> <br>
</div>
<hr style="margin-top: 50px">
<footer>
<h2 id="message"></h2>
<h3 id='scores'></h3>
<h3 id='all_scores'></h3>
&#13;
server.js
socket.on('score',(data)=>{
db.collection('Scores').insertOne({
id:data.id,
score:data.scores
},(err,result)=>{
if(err){
return console.log('unable to insert',err);
}
console.log(JSON.stringify(result.ops,undefined,2));
});
socket.to(room_id).emit('leaderboard',{
points: db.collection("Scores").findOne({id:data.id},{id:0,_id:0})
});
});