Форум: "Прочее";
Текущий архив: 2010.01.10;
Скачать: [xml.tar.bz2];
ВнизК обладателям клиента форумного.. Найти похожие ветки
← →
McSimm © (2009-11-04 13:09) [80]
> Протокол требует сквозной последовательный номер, независимый
> от других форумов, при том не на тему, а на каждое сообщение.
>
так и есть
← →
xayam © (2009-11-04 13:09) [81]это то? http://pear.php.net/package/Net_NNTP
← →
McSimm © (2009-11-04 13:10) [82]
> так и есть
нет, ошибся. нет такого ID, но сформировать несложно
← →
Anatoly Podgoretsky © (2009-11-04 13:14) [83]> Kerk (04.11.2009 13:02:17) [77]
С номером ответа и есть проблема, сколько позиций для него ответсти? Сколько отведешь столько и будет мало, Это первая проблема, вторая это последовательность каждый следующий должен быть на единицу больше. Конечно я обошел вопрос, но как то это не красиво. А твой вариант я пробовал и нарвался на ограничение протокола, не может он работать с такими большими числами, максимум Integer
← →
Anatoly Podgoretsky © (2009-11-04 13:16) [84]> xayam (04.11.2009 13:05:19) [79]
Я не в курсе, наверняка есть, но не под шлюз/конвертор delphimaster.ru <--> NNTP сервер.
Почему возник твой вопрос понятно, кроссплатформенность, а не только Windows.
← →
McSimm © (2009-11-04 13:18) [85]
> каждый следующий должен быть на единицу больше.
добавлю автоинкрементное поле и будет то что надо. там это все в одной таблице, в отличие от текущей реализации, где все конфы и ветки независимы
← →
Anatoly Podgoretsky © (2009-11-04 13:18) [86]> McSimm (04.11.2009 13:09:20) [80]
Это отлично, только вряд ли я вернусь к шлюзу еще раз.
← →
Anatoly Podgoretsky © (2009-11-04 13:19) [87]> McSimm (04.11.2009 13:10:22) [82]
Максим если не сложно, то заложи это, оно будет полезно для любого клиента.
Жалко что последовательная нумерация не была заложена изначально.
← →
McSimm © (2009-11-04 13:21) [88]Главная проблема в том, что изучение RFC никак в мой текущий график не вписывается. Я банальные формы модераторские уже месяц как начал и не могу доделать. Уже червяки в мозгах заводится начали из-за постоянного дедлайна :)
← →
Anatoly Podgoretsky © (2009-11-04 13:34) [89]
> добавлю автоинкрементное поле и будет то что надо. там это
> все в одной таблице, в отличие от текущей реализации, где
> все конфы и ветки независимы
Надеюсь по каждой конференции отдельно, а то остается тоже самое, только мягче, чем с датой в качестве ИД
← →
antonn © (2009-11-04 13:50) [90]
> С номером ответа и есть проблема, сколько позиций для него
> ответсти?
в мускле одно автоинкрементальное поле Integer, беззнаковое. 4 миллиарда постов.
← →
McSimm © (2009-11-04 13:54) [91]
> Надеюсь по каждой конференции отдельно
нет, такое не так просто сделать
← →
xayam © (2009-11-04 14:38) [92]
> Anatoly Podgoretsky © (04.11.09 13:16) [84]
> NNTP сервер.
вот нарыл на php nntp-сервер http://sourceforge.net/projects/phpinn/ судя по дате заброшен в 2002 году. Зато исходники интересные.
А NNTP в каком году вообще появился?
← →
Anatoly Podgoretsky © (2009-11-04 14:53) [93]> McSimm (04.11.2009 13:21:28) [88]
Ну сообственно все RFC по части нумерации я расказал, оно вкладывается в две вещи, последовательность и независимость форумов друг от друга.
Последовательно не означает отсутствия дырок, просто каждый должен быть на единицу больше. С независимостью сложнее, поскольку все форумы могут жить в одной таблице, без деления.
← →
Anatoly Podgoretsky © (2009-11-04 14:57) [94]> antonn (04.11.2009 13:50:30) [90]
Все так, только мы говорим про текущую реализацию, где в качестве ИД текущее время в формате Юникс и отсутствия как бы деления на сообщение, логическое в пределах одной темы оно есть. У меня MS SQL я могу вообще под ИД выделить 128 бит, но протокол не позволяет более Integer, а время уже почти подходит к пределу, где то через 10 лет кончится и добавление к нему еще и номер поста сразу убивает это дело.
← →
Anatoly Podgoretsky © (2009-11-04 14:58) [95]> McSimm (04.11.2009 13:54:31) [91]
Это конечно убивает независимость форумов, но все же много лучше текущей ситуации
← →
Anatoly Podgoretsky © (2009-11-04 15:00) [96]> xayam (04.11.2009 14:38:32) [92]
Я затрудняюсь сказать, но оно появилось задолго до Интернета в современном виде, другое название USENET, дурипедия утверждает, что в 1980 году. Вот статья http://ru.wikipedia.org/wiki/USENET#.D0.92.D0.B2.D0.B5.D0.B4.D0.B5.D0.BD.D0.B8.D0.B5
← →
xayam © (2009-11-04 15:00) [97]
> Anatoly Podgoretsky © (04.11.09 14:57) [94]
> но протокол не позволяет более Integer, а время уже
> почти подходит к пределу, где то через 10 лет кончится и
> добавление к нему еще и номер поста сразу убивает это дело.
а есть ли разница? если у меня сервер на php будет крутиться, ID ведь я в исходниках прописать какое захочу?
← →
antonn © (2009-11-04 15:10) [98]
> Все так, только мы говорим про текущую реализацию, где в
> качестве ИД текущее время в формате Юникс
помоему этот костыль уже давно надо выкинуть, и заменить обычным надежным автоинкрементом :)
про номер поста не понял. Я везде у себя для каждого поста завожу два иде: thread_id и post_id. И поддерживается запрос когда я пишу www.gg.ru/index.php?post=125 то сайт мне показывает тему с этим постом (thread_id у него есть), плюс прокручивает на нужную страницу. При этом я в урле не указываю ни ИД темы, ни ИД форума. И при модерации ничего не поменяется. А делать "номер поста" в пределах темы это костыль будет. (собсно отсюда так же легко реализовывать www.gg.ru/index.php?thread=125 без указания форума (у тебя хранится thread_id), перенесенная тема все так же откроется по старой ссылке)
Или я чего не понял?
← →
xayam © (2009-11-04 15:20) [99]
> Anatoly Podgoretsky © (04.11.09 15:00) [96]
А sql-скрипт на создание структуры бд на Ваш nntp-сервер есть http://www.podgoretsky.com/Progs/apc/apc.aspx ? Как это все хранится? Я там пощелкал на скачать скрипты, но структуры не нашел. Ее можно выложить?
← →
Anatoly Podgoretsky © (2009-11-04 15:22) [100]> xayam (04.11.2009 15:00:37) [97]
Ты не понял, я ничего не имею против твоего сервера, речь идет только о шлюзе к delphimaster.ru, где нормальный ИД взять негде, у меня и так свой последовательный, независимый от форумом ИД, но основа то delphimaster.ru
← →
Anatoly Podgoretsky © (2009-11-04 15:35) [101]> antonn (04.11.2009 15:10:38) [98]
Ты действительно немного не так понял. В текущей реализации есть номер темы, это время, и есть внутренний относительный, для клиентов форума) номер, я не знаю как точно это реализовано, это може Максим при желании рассказать. и нет никакого post_id. Для работы таких протоколов как POP/NNTP и вообще - нужен уникальный, автоинкриментный ИД. Тогда все будет нормально, а в протоколе есть понятие reference - это ссылка на ИД на который поступил ответ, что позволяет строить дерево. Номер форума нужен, поскольку форумы должны быть независимы, по требованиям RFC.
Одно из двух thread_id и post_id для протокола не нужно, это в референс уже есть, но оно удобно для построение HTML версии, выборка по thread_id и начиная с post_id - в случае без поддержки дерева. У меня собственно так сервер и устроен, только пользы от этого не очень, дерево не построить без уникального ИД сообщения.
Но все это говорится для случая NNTP, поскольку для HTTP без разницы как это организовано
← →
Anatoly Podgoretsky © (2009-11-04 15:40) [102]> xayam (04.11.2009 15:20:39) [99]
Я рекомендую взять EmptyDB и приаттачить, и там уже появится возможность автоматически создать скрипты, но вроде скрипт создания приложен, это CreateDB.sql - там создание базы и созадния структуры, но это лишнее, когда есть пустая ДБ
Кстати мы уже давно завели тему в шестой конференции http://delphimaster.net/view/16-1257329923/
← →
xayam © (2009-11-04 16:05) [103]люди, кто поможет переделать формат MSSQL http://xayam.com/nntp-server.structure.mssql.sql в MySQL ? Буду очень признателен, а то я в ms не силен :)
← →
xayam © (2009-11-04 16:15) [104]
> Anatoly Podgoretsky © (04.11.09 15:40) [102]
что-то странная структура у Вас. Зачем в разных таблицах одни и те же поля? Можно отдельно же сделать? Примерно как здесь http://xayam.com/phpinn.sql
← →
Anatoly Podgoretsky © (2009-11-04 16:35) [105]> xayam (04.11.2009 16:15:44) [104]
По требованию RFC нумерация должна быть не зависима форум от форума, вот поэтому вместо одной таблицы сделано 14, по одной на форум и номер автоинкриментный. Это самое простое решение. При переводе на другую БД например с генераторами, можно будет сделать одну таблицу и 14 генераторов. В принципе мне 14 таблиц не мешали, но другого более простого и надежного решения, без генераторов я не видел.
← →
xayam © (2009-11-04 23:36) [106]
> Anatoly Podgoretsky © (04.11.09 16:35) [105]
> По требованию RFC нумерация должна быть не зависима форум
> от форума, вот поэтому вместо одной таблицы сделано 14,
> по одной на форум и номер автоинкриментный. Это самое простое
> решение. При переводе на другую БД например с генераторами,
> можно будет сделать одну таблицу и 14 генераторов. В принципе
> мне 14 таблиц не мешали, но другого более простого и надежного
> решения, без генераторов я не видел.
я структуру набросал, как я это вижу на все глядя со сторону http://xayam.com/struct.jpg Реально такое сделать?
← →
Anatoly Podgoretsky © (2009-11-05 00:49) [107]> xayam (04.11.2009 23:36:46) [106]
Реально, у меня почти так и сделано, единственно я бы заложил возможность расширение на всякий случай, есть смысл добавить/заложить возможности расширени протоколов, кроме http и nntp, еще и rss и pop3/smtp.
Суть в том, что функции клиента переложить на штатного для системы клиента, какой нравится, а усилия перенести на сервер.
Только связи я бы сделал по другому, не NNTP обращается к http, а все подсистемы работают напрямую с БД, без лишних посредников, а пользовательские клиенты обращались к нужной подсистеме. Это более живучая и расширяемая система. Поток синхронизации должен быть отделен от NNTP, любая подсистема запускала бы цикл синхронизации, а для пользовательского клиента данные брала бы исключительно из БД. Поток синхронизации с delphimaster должен писать только в БД, ему ни к чему знать про клиентов.
← →
Anatoly Podgoretsky © (2009-11-05 01:05) [108]
> McSimm © (04.11.09 13:54) [91]
>
> > Надеюсь по каждой конференции отдельно
>
> нет, такое не так просто сделать
Кстати если потом вздумаешь прицепить и NNTP, то это не выйдет из-за этого, поскольку в нем, есть не только одиночные запросы на сообщение, а и групповые по диапазону номер1-номер-N, или придется делать без деление на конференции или придется придумывать дублирующую, зеркальную систему нумерации, с отдельной таблицей/цами. Будет неудобно и будет сложно обеспечить целостность. С отдельными таблицами, по одной на каждый форум, это легко сделать.
Поэтому стоит подумать о будущем, если конечно еще не поздно.
← →
Демо © (2009-11-05 02:05) [109]Один вопрос - а всё-таки оно нужно?
← →
VirEx(home) (2009-11-05 13:00) [110]Надо бы дмклиент переписать чтоб локальную базу в эскулайте хранила, с возможностью в эм эс эскуэль
← →
Павел Калугин © (2009-11-05 14:18) [111]
> Gero © (02.11.09 16:55) [40]
>
> > Kolan © (02.11.09 16:53) [39]
>
> Я же говорю: собирался, давно. Сейчас предлагаю все выложить
> в открытый доступ.
А можно на почту?
И, если можно, с описанием протокола.
← →
xayam © (2009-11-06 00:26) [112]
> Anatoly Podgoretsky © (05.11.09 00:49) [107]
> Только связи я бы сделал по другому, не NNTP обращается
> к http, а все подсистемы работают напрямую с БД, без лишних
> посредников, а пользовательские клиенты обращались к нужной
> подсистеме. Это более живучая и расширяемая система. Поток
> синхронизации должен быть отделен от NNTP, любая подсистема
> запускала бы цикл синхронизации, а для пользовательского
> клиента данные брала бы исключительно из БД. Поток синхронизации
> с delphimaster должен писать только в БД, ему ни к чему
> знать про клиентов.
значит так правильнее http://xayam.com/struct2.jpg ?
> в есть смысл добавить/заложить
> возможности расширени протоколов, ... , еще
> и rss и pop3/smtp.
а зачем эти протоколы нужны в системе?
> Суть в том, что функции клиента переложить на штатного для
> системы клиента, какой нравится, а усилия перенести на сервер.
а какие функции нужно переносить на сервер? Конкретнее можно.
← →
xayam © (2009-11-06 00:59) [113]
> Anatoly Podgoretsky © (04.11.09 15:35) [101]
> Но все это говорится для случая NNTP, поскольку для HTTP
> без разницы как это организовано
я так понял последний стандарт nntp этот - http://tools.ietf.org/html/rfc3977 за 2006 год.
Существует его перевод на русский? В инете искал, но пока предлагают только услуги по переводу спецификаций.
← →
Anatoly Podgoretsky © (2009-11-06 10:24) [114]> xayam (06.11.2009 00:26:52) [112]
Уже лучше, но я немного другое имел, похожее
NNTP, HTTP, RSS, POP3/SMTP каждый из них сам запускает поток для отправки сообщения и синхронизации с delphimaster.ru и забывает о нем, поток пишет данные в базу.
NNTP, HTTP, RSS, POP3/SMTP каждый из них сам обращается к mysql и забирает свои данные.
Альтернативой может быть отсылка сообщения на сервер в потоке, а синхронизация базы по рассписанию, решение зависит от нагрузки, но в обеих случаях не должно тормозить отсылки ответа клиенту.
То есть все клиенты независимы друг от друга, но так как ты сейчас предлагаешь уже лучше, единственно сложнее наращивать клиентов и лишнии посредники, если конечно не считать Apache как прокси, сериализация видимо решается автоматически средствами апаче и ответ выдает в NNTP не дожидаясь окончания синхронизации, кроме случая посылки сообщения на delphimaster.ru - тогда подойдет. Но если клиент будет ждать окончания синхронизации то это плохо.
← →
Anatoly Podgoretsky © (2009-11-06 10:28) [115]> xayam (06.11.2009 00:59:53) [113]
Я не знаю какой последний, но ты должен учесть, что нет никакой необходимости реализвовывать в полном объеме, поскольку это не полноценный сервер, а только шлюз к delphimaster. Вряд ли когда либо данный сервис станет членом USENET и конечно нужно иметь один свободный порт для службы, желательно стандартный 119, на shared hosting это сложно и иногда не возможно, на выделеном сервере без проблем.
← →
Anatoly Podgoretsky © (2009-11-06 13:21) [116]У меня реалихован следующий набор команд
> telnet inet.nitrofert.ee 119200 Anatoly Podgoretsky NNTP Server Ready (posting allow)
help
100 Help text follows
Commands are:
ARTICLE MsgNr or <MsgId>
AUTHINFO USER name
BODY MsgNr or <MsgId>
DATE
GROUP name
HEAD MsgNr or <MsgId>
HELP
LAST
LIST
LIST NEWSGROUPS
MODE READER
NEWSGROUPS date time (formay yymmdd hhmmss)
NEXT
POST
QUIT
STAT MsgNr or <MsgId>
XOVER FirstId[-LastId]
.
Этого достаточно, нужные rfc есть у меня на сайте в папке с документацией к APC SQL
← →
xayam © (2009-11-07 14:58) [117]
> Anatoly Podgoretsky © (06.11.09 13:21) [116]
из этих команд в стандарте 3977 я не нашел только AUTHINFO (что она делает и как?) и XOVER (заменен на OVER)
← →
Anatoly Podgoretsky © (2009-11-07 15:36) [118]> xayam (07.11.2009 14:58:57) [117]
Не надо тебе 3977 смотри из моей коллекции.
← →
xayam © (2009-11-07 16:00) [119]
> Anatoly Podgoretsky © (07.11.09 15:36) [118]
> > xayam (07.11.2009 14:58:57) [117]
> Не надо тебе 3977 смотри из моей коллекции.
почему ? более новая спецификация же
← →
xayam © (2009-11-07 16:04) [120]тем более она помечена как стандарт которого следует придерживаться
Страницы: 1 2 3 4 вся ветка
Форум: "Прочее";
Текущий архив: 2010.01.10;
Скачать: [xml.tar.bz2];
Память: 0.7 MB
Время: 0.009 c