@nodejs_ru

Страница 538 из 2748
Sergey
28.01.2017
13:51:38
может они имеют ввиду запускать один таймер через замыкание для каждой сессии, но тогда же все равно будет очередь из таймеров. Я тоже не понимаю как это - решить все одним таймером

интересно

Vladimir
28.01.2017
13:53:51
ты исходишь из того, что нельзя просто взять и использовать таймеры как есть

это предположение ничем не обосновано

Google
Sergey
28.01.2017
13:55:59
Artur
28.01.2017
13:57:40
вообще для такого, кажется, будет норм redis с ttl. такое и скейлить легко

Victor
28.01.2017
13:57:58
Если один таймер для всех брать, то изи же

Alexey
28.01.2017
13:58:19
Каждая сессия инровая это раунд, в нем 99 секунд как в файтинге, общение по socket.io

Alexey
28.01.2017
14:00:12
В идеале чтобы сервер считал каждую секунду

Vladimir
28.01.2017
14:00:14
причем здесь редис то вообще

Alexey
28.01.2017
14:00:25
И на клиента эмитил просто "время обновилось"

MVP
28.01.2017
14:00:30
Может на каждого нового клиента спаунить новый процесс? Или это через чур хардкор

Victor
28.01.2017
14:00:43
хад

хард

Google
Victor
28.01.2017
14:00:57
ибо плодить 1000 процессов не есть хорошо

Дмитрий
28.01.2017
14:01:40
Сделать массив-очередь выполнения и выполнять интервалы пошагово до ближайшего следующего события

Victor
28.01.2017
14:02:01
У вас есть один таймер, от него зависят все текущие и последующие сессии.

Artur
28.01.2017
14:02:21
причем здесь редис то вообще
ну, редис как шина и event-emitter, в которой событие - просрочка ключа

Дмитрий
28.01.2017
14:02:30
зачем?
Я же тебя не спрашиваю "зачем нельзя"

Artur
28.01.2017
14:02:33
воркеры на это подписываются, соответственно

Vladimir
28.01.2017
14:02:50
Я же тебя не спрашиваю "зачем нельзя"
ну а я тебя спрашиваю - зачем? пользы 0

Alexey
28.01.2017
14:02:54
Ой нет, как-то неохота лишние сущности плодиить для решения)

Victor
28.01.2017
14:03:03
Можно просто высчитавать время текущей сессии и след. сессии и исходя из полученного результата закрывать или открывать нью сессиию

Alexey
28.01.2017
14:03:06
Итак к минимуму стараюсь свести

Vladimir
28.01.2017
14:03:15
Ой нет, как-то неохота лишние сущности плодиить для решения)
Еще раз - сделай без заморочек, и проверь как работает

Не надо решать проблему, которой нет

Дмитрий
28.01.2017
14:03:25
ну а я тебя спрашиваю - зачем? пользы 0
Не, ты говоришь что так нельзя, я тебя понял, вопросов больше не имею

Vladimir
28.01.2017
14:03:26
Только хуже будет

Alexey
28.01.2017
14:03:34
Да сделал, на моей тачке подтормаживает при 300 уже

Vladimir
28.01.2017
14:03:36
> @ZeroBias Не, ты говоришь что так нельзя, я тебя понял, вопросов больше не имею Я говорю что это ничего не решает

Alexey
28.01.2017
14:03:52
И я не знаю это много или мало

Google
Сергей
28.01.2017
14:03:57
Alexey
28.01.2017
14:04:01
Так я хз это много или мало

Сергей
28.01.2017
14:04:13
один таймер -> очередь событий

Дмитрий
28.01.2017
14:04:14
Можно одним всё решить, как уже выше сказали

нельзя

Vladimir
28.01.2017
14:04:18
Вопрос не в этом, в вопрос в том - чт именно полтармаживает

Alexey
28.01.2017
14:04:20
И как оно будет себя в бою вести

Дмитрий
28.01.2017
14:04:29
Vladimir
28.01.2017
14:04:41
Можно одним всё решить, как уже выше сказали
Да, это так нельзя ничего решить

Alexey
28.01.2017
14:04:43
Vladimir
28.01.2017
14:04:48
Это не решает ничего

Дмитрий
28.01.2017
14:05:01
Поподробнее плз)
Сделать массив-очередь выполнения и выполнять интервалы пошагово до ближайшего следующего события

Vladimir
28.01.2017
14:05:13
Это бред - таймеры так и работают

Vladimir
28.01.2017
14:05:24
MVP
28.01.2017
14:05:24
Поподробнее плз)
Ну погугли очереди асинхронныые

Victor
28.01.2017
14:05:25
сallback в помощь

один таймер -> очередь событий

Сергей
28.01.2017
14:06:02
Поподробнее плз)
Ты в каждой сессии пишешь когда тебе надо эмитнуть событие, типа nextEmit: Date.now() + 90 * 60 * 60 Дальше каждую секунду пробегаешь по всем сессиям и проверяешь пришло время или нет Если пришло вызываешь событие, но тут eventEmitter Не особо нужен

Vladimir
28.01.2017
14:06:16
сallback в помощь
Реплай вместо форварда, пржалуйста

Vladimir
28.01.2017
14:06:19
Это скорее всего будет только медленнее

Google
Vladimir
28.01.2017
14:06:27
Много лишней работы

Дмитрий
28.01.2017
14:06:40
По всем бегать медленнее, да

Сергей
28.01.2017
14:06:42
Это скорее всего будет только медленнее
скажи это всем игровым движкам

Vladimir
28.01.2017
14:06:53
> @sovamist скажи это всем игровым движкам Причем здесь это

Alexey
28.01.2017
14:06:59
Так, давайте я сейчас скажу как я это решил сейчас и вы скажете это ок или нет лучше

А то срач

Сергей
28.01.2017
14:07:04
Admin
ERROR: S client not available

Vladimir
28.01.2017
14:07:30
Таймеры на сервере раз в секунду? чет хз

Alexey
28.01.2017
14:07:36
На ноде никакого таймера нет, есть комнаты, у каждой комнаты есть lastUpdate

Каждый клиент запускает свой клиентский сетинтервал и раз в 10 секунд эмитит на сервак что он дескать прошло 10 секунд

Нода сверяет время эмита с записанным lastupdate

Сергей
28.01.2017
14:08:36
Таймеры на сервере раз в секунду? чет хз
нет Там бесконечный цикл, и на каждой итерации внутренний цикл бежит по объектам и сверяет время и если надо выполняет действие (рендер, просчет анимации, физики и прочее)

Alexey
28.01.2017
14:08:51
И если не совпадает то закрывает соединение типа читер

Это такое сейчас рабочее решение, но мне чот кажется что это костыль

Alexey
28.01.2017
14:09:31
Причем жуткий

Это так?

Сергей
28.01.2017
14:09:42
Это да. Потому что там другой порядок интревал и всего один клиент
не забывай про серверный код например unreal engine

Google
Eduard
28.01.2017
14:10:05
Не уж то настал тот день когда пых теперь быстрее ноды? https://habrahabr.ru/post/320670/

Vladimir
28.01.2017
14:10:28
Настал тот день, когда идиоты публикуют бенчмарки

Но он давно настал

Alexey
28.01.2017
14:10:51
Итак?

Eduard
28.01.2017
14:11:12
Дмитрий
28.01.2017
14:11:26
var array = {}

Сергей
28.01.2017
14:11:27
Дмитрий
28.01.2017
14:11:34
хохочу

Vladimir
28.01.2017
14:11:39
просто очень дебильный бенчмарк

посмотрите как там mysql в ноде меряют

Alexey
28.01.2017
14:12:02
Эх... ладно

Сергей
28.01.2017
14:12:50
нахрена мерить мускулЬ?

Eduard
28.01.2017
14:12:52
посмотрите как там mysql в ноде меряют
да даже если мускуль пропустить, по остальным бенчам нода все так же

Сергей
28.01.2017
14:12:53
чо за тупость

чувак

ты бы блин изучил ноду прежде чем постить эту херню

Vladimir
28.01.2017
14:13:32
да не, просто как бы ярко демонстрирует компетентность автора

Сергей
28.01.2017
14:13:52
вот поэтому хабр не торт

Eduard
28.01.2017
14:14:14
да не, просто как бы ярко демонстрирует компетентность автора
ну даже в слуаче сложения строк, оно проигрывает, не уж то так пых наточили?

или я чего то не понимаю

Страница 538 из 2748