Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Технические вопросы по RusHub'у _ TimeOUT

Автор: ShadoWx 8.2.2012, 21:13

Интересует следующий вопрос,

Провел эксперимент, если у пользователя каким-то образом рвется соединение, например диал-ап или плохая линия, то хаб не пускает обратно около 15 минут ...

В настройках обнаружил следующие таймауты:

Код
    <Item Name="iTimeoutAny">600,000000</Item>
    <Item Name="iTimeoutGetpass">300,000000</Item>
    <Item Name="iTimeoutMyinfo">40,000000</Item>
    <Item Name="iTimeoutLogin">600,000000</Item>
    <Item Name="iTimeoutNick">30,000000</Item>
    <Item Name="iTimeoutKey">60,000000</Item>


прочитал на вики что все величины заданы в секундах ... пробовал менять эту величину на 60,000000 (1 мин) хаб не реагирует..
еще зачем после запятой столько нулей ???

*** как проверял у себя захожу на хаб ...рву впн (отключаю) ..поднимаю впн ..на хаб не пускает ...))

Автор: Setuper 8.2.2012, 21:14

Что значит не пускает? Что пишет?

Это таймауты стадий входа. В течение этого времени клиент должен отослать соответствующую команду стадии входа. Если он не отсылает, то хаб принудительно закрывает соединение. Нули после запятой - это просто формат такой по умолчанию - 6 знаков после запятой

Автор: ShadoWx 8.2.2012, 21:34

пишет содержимое этой строки из настройки:
<Item Name="sUsedNick">Этот ник %[nick] уже используется другим пользователем.</Item>
ну якобы этот ник все еще на хабе находится ...

есть какие мнения, Илья ?

Автор: dj_crazy_joker 8.2.2012, 21:45

была такая же проблемма когда инет раньше часо падал на локальный хаб не пускала, я личил сменой ника.
вчера тож самое произошло и пытался в настройках хаба найти что нибуть подобное
как я понял если рестаришь комп то можешь нормально заходить а если инет то не зайти (ник занят)
как я понял это не из-за настроек хаба а в клиенте настраиваеться

Автор: ShadoWx 8.2.2012, 21:49

dj_crazy_joker, рестарт компа тут не причем, но подмечено верно - смена ника решает проблему, видимо приходится ждать пока хаб не обновит список пользователей .... по моим подсчетам это занимает от 15 до 17 минут ..

Автор: dj_crazy_joker 8.2.2012, 21:58

ShadoWx
Ну мне лично всегда рестарт компа помогал big_smile1.gif

Автор: Setuper 9.2.2012, 9:19

Данное сообщение показывается если выполнены следующие условия:
1). На хабе есть пользователь, который имеет данный ник.
2). У этого пользователя профиль не равен -1, то есть этот пользователь является зарегистрированным.
3). IP входящего пользователя и IP пользователя, который находится на хабе НЕ совпадают.

Современные DC клиенты пингуют хаб (примерно каждые 2 минуты). Возможно стоит сделать для таких клиентов проверку связи, то есть если клиент долго не пингует хаб, то отключать его. Хотя это не есть хорошо.

Автор: ShadoWx 9.2.2012, 9:45

1). На хабе есть пользователь, который имеет данный ник.
Илья, если пользователь не зарегистрирован, то входящий с таки же ником займет его место, а того выкинет =) только что проверил

3). IP входящего пользователя и IP пользователя, который находится на хабе НЕ совпадают.
а вот и нашел я свою проблему =) .. у меня динамика и когда я искусственно рвал соединение и поднимал - ip менялся... но я одно не пойму ..почему надо ждать до17 минут где-то ...

Автор: Setuper 9.2.2012, 11:27

На какой ОС стоит хаб?

Автор: dj_crazy_joker 9.2.2012, 14:08

ShadoWx
Попробуй с локального зайти или у тя хаб не в локалки?

Автор: ShadoWx 9.2.2012, 17:41

Setuper, Debian.

Автор: ShadoWx 10.2.2012, 10:30

И .... scorn.gif

Автор: Setuper 11.2.2012, 11:42

Вернул настройку iTimeoutAny. По умолчанию 600 секунд (10 минут).
Хаб теперь проверяет, что клиент что-то отправлял в течении iTimeoutAny секунд, в противном случае дропает клиента.
Современные клиенты делают пинги хаба (отсылка пустой команды - команды, состоящей из одного символа | ). Если хаб часто сбрасывает пользователей, то нужно увеличить величину этой найстройки, однако, если хаб никого не сбрасывает, то эта настройка наоборот может быть уменьшена до интервала пинга со стороны клиентов, который обычно составляет порядка 2-3 минут.

Автор: ShadoWx 11.2.2012, 16:44

Благодарю still_dreaming.gif

Автор: Setuper 11.2.2012, 20:52

По всей видимости всё же придётся убрать этот таймаут, ибо EiskaltDC не посылает на хаб пинги.

Автор: ShadoWx 11.2.2012, 21:55

Илья, я может чего то не так понял - но проблема в том что у кого плохая связь и как вариант рвется коннект, то русхаб их не пускает только из-за того что этот ник висит на хабе, как активный ... сам смотрел, с другого ника заходит ....

как я вижу ..может сделать что то вроде обновления списка пользователей ... с каким-нибудь интервалом ...

Автор: Setuper 11.2.2012, 23:47

Если от клиента не поступает никаких команд, то о клиенте фактически ничего не известно, и не понятно жив ли он.
Вообще говоря механизм пингов обеих сторон взаимодействия (хаба и клиента) должен быть заложен в протоколе взаимодействия (в частности в протоколе NMDC). Однако, многие клиенты не пингуют хаб. Поэтому хабу очень сложно понять жив ли клиент.

Конечно можно это всё на уровне TCP протокола организовывать, однако механизм на различных ОС может сильно различаться.

В общем я буду думать и пробовать это как-то реализовать.
По всей видимости такие проблемы возникают только при динамических ip.

Автор: ShadoWx 12.2.2012, 0:06

Главное багу сообщил, спасибо за ответ