Чтобы сохранить и сохранить состояние пользователей, можно использовать хранилище значений ключей, такое как Aerospike. Сохранять и извлекать данные в хранилище значений ключей очень просто. В приведенном выше случае нам просто нужно сгенерировать уникальный ключ, используя gameId, userId и date. И сохраните данные пользователя против уникального ключа.
Для начала работы с PHP-клиентом Aerospike: PHP-клиент Aerospike
Если данные присутствуют против уникального идентификатора для этого конкретного пользователя, просто верните его, в противном случае создайте новое случайное число, сохраните его против уникального ключа и верните его. Пожалуйста, будьте осторожны при создании уникального ключа. Вместо использования даты и времени на стороне сервера, пожалуйста, отправьте дату в запросе вызова ajax, чтобы не было проблем с часовым поясом. Это всегда будет часовой пояс пользователя, и не будет никаких проблем, если сервер находится в другом часовом поясе, а пользователь - в другом часовом поясе.
function drawNumber(){
$.get("{{ route('ajaxcomparepowerball') }}",{'gameId': gameid,'date':user-timezone-date}, function(res){
$('#mybets').html(res.html);
});
}
Здесь «user-timezone-date» должен быть фиксированный формат даты, например «MM-dd-yy», который будет обозначать тот же день. часы или секунды не должны учитываться при генерации уникального ключа, иначе во время получения состояния пользователя; генерация определенного уникального будет изменяться каждый час или каждую секунду, и вся цель этого действия будет разрушена.
Я новичок в StackOverFlow, поэтому я не могу комментировать ответы. В случае работы с кукурузой мы также должны быть осторожны с часовыми поясами, если сервер и пользователи находятся в разных часовых поясах. В противном случае пользователь увидит другое случайное число до окончания дня пользователя. Пожалуйста, улучшите ответ, комментируя его, и предложения всегда приветствуются.