1ページのラベルの更新が別のページのラベルに影響する理由がわかりません。私はDOMがそれほど共有されているとは思わなかった。あるタブまたはページを開くと、ラベルは 'player1'に更新されますが、別のタブ/ pgを開くと、両方のラベルが 'player2'に更新されます。2プレーヤーsocket.ioゲームのテスト。ラベルの更新が両方のページに影響しています
<script>
var socket = io.connect('http://localhost:3000');
socket.on('connect', function() {
socket.emit('join');
socket.on('joinSuccess', function (playerSlot) {
if (playerSlot === 'player1') {
$("#playerID").text("you are player1");
} else if (playerSlot === 'player2') {
$("#playerID").text("you are player2");
}
}); //end joinSuccess
}); //end connect
私は単にどのプレイヤーであるかをユーザーに通知しようとしています。
解決策:新しいユーザーが参加したときに
else if (playerSlot === 'player2') {
var elm = $("#playerID");
var empty = !elm.text().trim();
if (empty) {
elm.text("you are " + playerSlot);
}
}
新しいユーザーが参加したときに「joinSuccess」というメッセージをプッシュしていますか?そのような場合、このメッセージは同じplayerSlot値を持つ両方のページに渡されます。したがって、すべてのページが最後に参加したプレイヤー名を更新します。 –
私はsocket.ioの専門家ではありませんが、新しいタブが開いたときに既存のすべてのタブで 'joinSuccess'が起動されるようです。 –