以下のようなエントリがあります。
{
"__v": 10,
"_id": "50f8050ed714645500000002",
"sid": "DI7gZ0sprJ",
"lines": [
{
"text": "Well that's what some people say anyway",
"_id": "50f80526d714645500000003",
"user": "Player456"
},
{
"text": "They're people just like the rest of us",
"_id": "50f805925543712caf000005",
"user": "Player123"
},
],
"title": "Test",
"maxlines": 0
}
以下のような socket.io スクリプトがあります。
socket.on('sendchat', function (data) {
Story.findOne({ sid: socket.room }, function(err, story){
if (err) {
console.log(err);
}
else if(story == null) {
console.log(err);
}
else {
io.sockets.in(socket.room).emit('updatechat', socket.username, data);
story.maxlines = story.maxlines - 1;
if (story.maxlines == 0) {
// End Game Script - Redirect to view page
io.sockets.in(socket.room).emit('gameover', slugs(story.title), socket.room);
}
//Save Story to DB
story.lines.push({
user: socket.username,
text: data
});
story.save(function(err, story){
if (err) {
console.log(err);
}
else {
console.log("Story Updated");
}
});
};
});
});
socket.username が、入力された最新の行のユーザーと等しいかどうかを確認する方法はありますか?
たとえば、上記の Player123 は最後にラインに入ったので、Player123 が再試行してもエラーが発生しますが、Player456 がラインに入ると、Player123 は再度入力できます。
私は単純なターンベースのゲームを作成しようとしています。これは、自分の番ではないときに人がラインに入ることができないことを確認するためにチェックします