0
當玩家點擊座位時,我需要能夠從DOM中刪除按鈕。這樣兩個球員不能坐同一個座位。玩家坐下後,所有按鈕都應該隱藏在客戶端,這樣他們就無法移動座位。我試圖隱藏node.js中其他套接字的按鈕。點擊按鈕後,我的球員我不希望其他球員能夠點擊它
服務器端
socket.on('seat1',function(){
player.x = 380
player.y = 300
player.number = 1
console.log(player)
socket.emit('seat1',function(){
hideSeatButtons();
})
});
socket.on('seat2',function(){
player.x = 380
player.y = 100
player.number = 2
console.log(player)
});
client side
var seat1 = function(){
socket.emit('seat1',{
});
}
var seat2 = function(){
socket.emit('seat2',{
});
}
var hideSeatButtons = function(){
document.getElementById("seat1").style.display = "none";
document.getElementById("seat2").style.display = "none";
}
因爲兩個用戶可能幾乎同時點擊同一個按鈕(在他們的客戶被通知其他人點擊它之前),所以總會存在競爭狀態。所以,你需要做的是點擊按鈕,然後告訴服務器你點擊了它。服務器會迴應點擊是否成功,或者其他人是否已經點擊了它並且客戶端可以相應地進行操作。當服務器成功點擊一個按鈕時,它可以向所有其他客戶端廣播該按鈕現在已被佔用,並且客戶端可以相應地進行操作。 – jfriend00