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 ответов

10 просмотров

gist.github.com

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

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

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

Какой-то там пердун в 90-х решил, что есть какая-то разная типизация. Кого вообще это волнует?
КТ315
49
void terminal_scroll() { memmove(terminal_buffer, terminal_buffer + VGA_WIDTH, buffer_size - VGA_WIDTH); memset(terminal_buffer + buffer_size - VGA_WIDTH, 0, VGA_WIDTH); ...
Егор
47
Всем привет! Подскажите, пожалуйста, в чем ошибка? Настраиваю подключение к MySQL. Либы лежат рядом с exe. Все как по "учебнику"
Евгений
16
А можете как-то проверить меня по знаниям по ассемблеру?
A A
132
Здравствуйте! У меня появилась возможность купить книгу "Изучай Haskell во имя добра!". Но я где-то слышал, что эта книга устарела. Насколько это правда??
E
22
Здравствуйте! Я вот на stepic решаю задачи на хаскеле https://stepik.org/lesson/8443/step/8?unit=1578 мой код import Data.List (isInfixOf) removing :: String -> [String] ->...
E
10
Камрады, кто тесно работал с vtv, хотел уточнить. Ширина column задаётся жёстко на этапе создания дерева или можно в рантайме ее менять программно (не мышкой)?
Ed Doc
10
да ладно ... что там неочевидного ? глянуть в исх-ки датасета и/или кверика чтобы понять в каком месте и как выполняется обращения к св-вам blablaSQL - минутное дело, даже е...
Сергей
7
Здесь для arm кто-нибудь кодит ?
Nothing
52
Всем привет, у меня есть сервер принимающий входящие HTTP подключения, как проверить, что подключение было через прокси или нет, есть какие то поля в заголовках по которым мо...
Кибер Бомж
8
Карта сайта