Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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 119

200 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
2-1258287355
sagitt
2009-11-15 15:15
2010.01.10
Не работает отладчик


15-1257758697
vajo
2009-11-09 12:24
2010.01.10
Почему-то не запускается Explorer


2-1258642049
Phoenix77
2009-11-19 17:47
2010.01.10
Сервисы (Службы)


1-1233071230
harisma
2009-01-27 18:47
2010.01.10
Скролл в TreeView


2-1258706506
2012
2009-11-20 11:41
2010.01.10
проблема с созданием сервиса (Stopped = False)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский