Добрый день коллеги!
Вопрос следующего плана. Как IRC сервер рассылает сообщения типа «изменил ник» и т.д.? Вопрос интересен тем, что одновременных клиентов может быть несколько тысяч. Как сервер узнает, нужно ли этому клиенту сказать, что такой-то клиент изменил свой ник? В архитектуре ICQ все понятно, на сервере храниться копия “Favorite list” и при изменении состояния клиента, сервер просматривает свою БД и рассылает сообщение только тем, у кого этот клиент находится в листе.
В IRC личные сообщения никак не регистрируются, они просто отправляются /msg и все.
Здравствуйте, LeonCrew, Вы писали:
LC>Добрый день коллеги! LC>Вопрос следующего плана. Как IRC сервер рассылает сообщения типа «изменил ник» и т.д.? Вопрос интересен тем, что одновременных клиентов может быть несколько тысяч. Как сервер узнает, нужно ли этому клиенту сказать, что такой-то клиент изменил свой ник? В архитектуре ICQ все понятно, на сервере храниться копия “Favorite list” и при изменении состояния клиента, сервер просматривает свою БД и рассылает сообщение только тем, у кого этот клиент находится в листе. LC>В IRC личные сообщения никак не регистрируются, они просто отправляются /msg и все.
В ICQ не рассылается сообщение о том, что сменился ник. Об этом узнаешь только когда делаешь рефреш дитейлз.
Можно, например, разослать сообщение только тем кто сидит на канале =)
N>В ICQ не рассылается сообщение о том, что сменился ник. Об этом узнаешь только когда делаешь рефреш дитейлз.
N>Можно, например, разослать сообщение только тем кто сидит на канале =)
В ICQ идет рассылка статуса...
Дак может кто-то что-то расскажет про IRC ?
Может у кого-то есть описание протокола на руском?
Здравствуйте, LeonCrew, Вы писали:
LC>Здравствуйте, Noobi, Вы писали:
N>>В ICQ не рассылается сообщение о том, что сменился ник. Об этом узнаешь только когда делаешь рефреш дитейлз.
N>>Можно, например, разослать сообщение только тем кто сидит на канале =)
LC>В ICQ идет рассылка статуса... LC>Дак может кто-то что-то расскажет про IRC ? LC>Может у кого-то есть описание протокола на руском?
Я бота писал для IRC с полгода назад...
К сожалению винт сгорел сорцами поделиться не могу но что то помню
В пакете указываеться кто отправил кому отправил потом тип команды и сама мессага
кому отправил бывает: все, канал, приват
команды их много вчастности смена ника это команда Name
если это MSG то там еще дополнительные настройки идут в пакете это выглядит вроде :#0001 это чтоп от третьего лица сказать
Самый оптимал телнетом конектишься и все что приходит в лог сохраняй потом по логу распарсишь
Мой опыт сидения в IRC говорит, что о смене ника узнают только те, кто сидит на том же(тех же) канале(ах), что и человек, сменивший ник. То есть, если ты говоришь с кем-то в привате и нет ни одного канала, на котором вы оба находитесь, то, если он меняет ник, ты об не узнаешь и соответственно нарвешься на сообщение, что мол такого-то типа нет в irc. Следовательно — сервер берет список каналов, на которых находится меняющий ник, и рассылает сообщение всем, находящимся на них.
Здравствуйте, __SPIRIT__, Вы писали:
__S>Я бота писал для IRC с полгода назад... __S>К сожалению винт сгорел сорцами поделиться не могу но что то помню
Всегда надо делать копии
__S>В пакете указываеться кто отправил кому отправил потом тип команды и сама мессага
__S>кому отправил бывает: все, канал, приват
__S>команды их много вчастности смена ника это команда Name __S>если это MSG то там еще дополнительные настройки идут в пакете это выглядит вроде :#0001 это чтоп от третьего лица сказать
__S>Самый оптимал телнетом конектишься и все что приходит в лог сохраняй потом по логу распарсишь
__S>я лично так делал потом регулярное выражение и...
__S>В общем потыкайся если что спрашивай
Поступил аналогично — telnet.
Спасибо за помощь...
Протокол IRC до боли прост и стандартизирован. Подробно он описан в RFC 1459 и обновлениях к нему. Очень советую прочитать. Многие вопросы в таком случае отпадут сами собой.
...думать — это значит ставить вопросы и пытаться находить ответы на них. // В. Рубцов
Здравствуйте, SeLarin, Вы писали:
SL>Протокол IRC до боли прост и стандартизирован. Подробно он описан в RFC 1459 и обновлениях к нему. Очень советую прочитать. Многие вопросы в таком случае отпадут сами собой.
Протокол прочел давно, а вот некоторые вещи там не описаны (возможно, в более новых изданиях есть).
Здравствуйте, Arioch2, Вы писали:
LC>>Вопрос следующего плана. Как IRC сервер рассылает сообщения типа «изменил ник» и т.д.?
A>В рамках каналов IMHO.
A>А что, были другие прецеденты ?
Есть некоторые клиенты, которые в привате показывают, состояние и изменение ника.
LC>>>Вопрос следующего плана. Как IRC сервер рассылает сообщения типа «изменил ник» и т.д.?
A>>В рамках каналов IMHO.
A>>А что, были другие прецеденты ?
LC>Есть некоторые клиенты, которые в привате показывают, состояние и изменение ника.
1) Может быть вы не только в привате, но и кроме того где-то на одном канале ?
2) М.б. (вряд ли но вдруг) клиент для чата создает временный скрытый invite-only канал ?
PS: Кто придумал Internet Explorer ? убить скотину!