Lass doch einfach den Client rerouten?
Habe so etwas Ähnliches schon einmal mit Angular und Tornado gemacht:
PHP Code:
$scope.join = function(game) {
if(game.players.length < game.rules.maxPlayers) {
client.send({
data: {
id: game.id
},
type: "method",
method: "joingame",
});
$state.go("game");
} else {
window.alert("GAME IS FULL");
}
};
Kannst genauso gut noch mit einer Response arbeiten, so dass erst gejoint wird, wenn der Server auch das OK gibt.
Würde dir auch dazu raten, mit selbst generierten IDs zu arbeiten, dann kannst du auch mal F5 drücken ohne, dass es zu Problemen kommt. (Dann kann natürlich auch der Server routen)