170 похожих чатов

🔥Привет, я делаю случайную рулетку на socket.io , и мне

нужно отправлять случайное число с сервера (каждые 17 секунд) (это будет значение для вращения колеса), и пока он выбирается, я уже вращаю барабан (6800deg) и когда число пришло с сервера, я добавляю его туда, и колесо прокручивается до нужного мне случайного числа, а затем вычисляется позиция элемента div и подставляется число от 0 до 360, так что бы предыдущее вращение не влияло на следующие и рулетка не вращается в другую сторону в случае выпадения меньшего числа.

🔥Вопрос: Когда человек зашел на страницу, у меня колесо не крутится, он ждет пока пройдет прошлый раунд(при этом нет live показа кручения барабана и все данные которые пришли на frontend исчезают(значение для вращения барабана) ) такая же ситуация, когда человек перезагружает страницу, как я могу заставить колесо вращаться, даже если человек только что зашел на страницу и не пришлось ждать истечения последнего раунда?
(хороший пример рулетки с таким функционалом - https://m.csgofast.com/double, функционал у меня примерно такой-же но при перезагрузки страницы там барабан вращается, а у меня нет).

Не знаю нужен код или нет ну на всякий случай вот:

🔸FrontEnd:

const socket = io();

/// Показ на фронтэнде количество пользователей
socket.on('onlineUsers', (msg) => {
document.querySelector('.online-users-parent').textContent = msg;
})


socket.on('fromServerSpin', (msg) => {
/// Получение на фронтэнд значение для вращение барабана (Допустим 9421);

document.querySelector('.wheel').style.transform = rotate(6800deg);
/// Начать вращение барабана до 6800deg в момент когда барабан еще крутится (Через 3сек после начала раунда) изменить динамически значение Rotate на 9421deg


setTimeout(() => {
document.querySelector('.wheel').style.transform = rotate(${msg}deg);
}, 3000);
/// После выполнение Rotate до нужного значения сработает функция вычисления положения барабана в deg от 0 до 360
/// Но сейчас ее еще нет (Но это и не важно). Вопрос который меня интерисует в телеграм
});



🔸BackEnd:

const CONFIG = {
port: 3000,
};

const path = require('path');
const express = require('express');
const app = express();
const http = require('http').createServer(app).listen( CONFIG.port, () => console.log( 'Server has been starting...' ) );
const io = require('socket.io')(http);

app.use( express.static( path.join( dirname + '/public' ) ) );







io.on('connection', (socket) => {
// setInterval(() => {
// const random = Math.floor(Math.random() * 11000) + 6800;
// io.sockets.emit('fromServerSpin', random);
// }, 17000);

//Если я вставлю этот код сюда результат такой же



});


/// Каждые 17с отправлять на фронтэнд случайное число для вращения барабана
setInterval(() => {
const random = Math.floor(Math.random() * 11000) + 6800;
io.sockets.emit('fromServerSpin', random);
}, 17000);



/// Количество пользователей на сайте
setInterval(() => {
io.emit('onlineUsers', io.engine.clientsCount);
}, 150);



/// Показ главной страницы
app.get('/', (req, res) => {
res.sendFile( dirname + '/views/index.html' );
});


🔥Заранее спасибо за помощь!

2 ответов

13 просмотров

gist.github.com

Наверное, это не по ноде вопрос

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта