|
|
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Пишу некое подобие ICQ на delphi+firebird для нужд организации. Почему изобретаю велосипед: - должна быть возможность отправки файлов, даже offline пользователям. Т.е. файл отправили, пользователь через некоторое время открывает программу под своим логином/паролем и ему предлагается загрузить перечень файлов, отправленных ему в его отсутствие. Пробовал на OpenFire реализовать, но такой функции не нашел. Все работает прекрасно у меня и сообщения и файлы хранятся в БД, все всем приходит и сообщения и файлы. Остался последний вопрос: как сделать проверку пользователей: кто подключен к Firebird? Думал при коннекте писать в таблицу ID пользователя и что он присоединен и Online и при выходе обратное. Но будут 100% потеря соединения (пользователи будут в разных городах и при потере соединения с интернетом будут обрывы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 12:47:00 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
у каждого пользователя создан пользователь в Firebird, т.е. они при коннекте вводят свои данные типа: Иванов пароль: 111, а коннект ищет реальные имена в Фб и соединяется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 12:48:36 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
SlaveOwner, не мучай птичку. Рядом (или не рядом, да хоть на яндексе) с OpenFire размести ftp , рассылай файлы через него, а в составе xmpp - пакета передавай адрес, откуда корреспондент может скачать переданный ему файл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 14:00:39 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
SlaveOwnerкак сделать проверку пользователей: кто подключен к Firebird? Делай это отдельным сервисом. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 14:00:54 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
SlaveOwner, Файлы всегда вначале заливать в блобы в БД Твой icq асинхронно с определенной периодичностью опрашивает таблицу с файлами на предмет наличия новых записей. В такой архитектуре проблем быть не должно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 14:36:28 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Вообще, имхо, проблема надумана. Это задача клиента - запрашивать список накиданых ему файлов. Если он не ждет этой инфы, то и не поймает файлов (спрашивается, каким макаром предполагается впихивать ему эти данные). А если ждет - пусть сам и запросит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 15:39:14 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Fr0sT-BrutalА если ждет - пусть сам и запросит. А догадаться, что именно сейчас имеет смысл запрашивать он должен как?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 15:42:45 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Hello, Dimitry Sibiryakov! You wrote on 30 августа 2013 г. 15:48:20: Dimitry Sibiryakov> А догадаться, что именно сейчас имеет смысл запрашивать он должен как?.. регулярно! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 15:49:04 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийрегулярно! Да! Чтоб слоники бегали! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 16:02:49 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Что за слоники ? :) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 16:04:20 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
On Fri, 30 Aug 2013 17:04:20 +0400, Гаджимурадов Рустам <nospam@sql.ru> wrote: > Автор: Гаджимурадов Рустам > Что за слоники ? :) Кто в армии служил, тот в цирке не смеётся... ;) -- Vladimir A.Bakhvaloff E-Mail:bob<bark>bakh<dot>spb<dot>ru Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 16:24:44 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА догадаться, что именно сейчас имеет смысл запрашивать он должен как?.. А как "догадываются" все мейлеры, агрегаторы rss и прочего? Да, регулярно теребят сервер. И это нормально. Можно сделать и событием, только придется еще предусматривать возможность того, что оно не будет принято, и генерировать его повторно при следующем коннекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 16:25:22 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Кстати, любопытно узнать, каким образом организована доставка сообщений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 16:27:40 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Fr0sT-BrutalА как "догадываются" все мейлеры, агрегаторы rss и прочего? Да, регулярно теребят сервер. Вменяемые - не теребят. IMAP4 это вам не тут! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 16:27:52 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
DS> Вменяемые - не теребят. IMAP4 это вам не тут! Учитывая, когда он появился и насколько распространен - сомнительное утверждение. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 16:29:05 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, что ни говори, а принцип "коннект - запросить - получить - дисконнект" по сравнению с "коннект - держать коннект - слушать, вдруг сервер что-то скажет - получить, если сказал - снова слушать" намного более проста, надежна и обкатана годами. Но опять же, интересно узнать, как реализована доставка сообщений. На основе этого механизма сделать отправку файлов не так уж сложно, кмк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2013, 17:42:26 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Fr0sT-BrutalНо опять же, интересно узнать, как реализована доставка сообщений События, Post_event ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2013, 13:12:21 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
В таком случае, и отправка файлов делается по той же схеме. Проверка подключенности юзера тут особо не нужна ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 16:22:26 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
А, понял. Вопрос в том, отправлять ли событие о наличии файла или просто складывать в хранилище? Ну, я вижу тут только введение таблицы юзеров, находящихся в онлайн. Все равно ведь это нужно, чтобы другие юзеры могли видеть, на месте ли их собеседник. Поддержание актуальности данных в этой таблице вешается на триггеры по коннекту/дисконнекту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 16:25:42 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutal Поддержание актуальности данных в этой таблице вешается на триггеры по коннекту/дисконнекту. В первом же сообщении ТС написал: Думал при коннекте писать в таблицу ID пользователя и что он присоединен и Online и при выходе обратное. Но будут 100% потеря соединения (пользователи будут в разных городах и при потере соединения с интернетом будут обрывы). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 18:02:45 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
miwaonline, ну да. Значит, все верно сделал :). А насчет обрывов - даже если внезапно разорвать соединение на клиенте, на сервере все равно возникнет событие дисконнекта. Если же предусмотреть случай отключения сервера (при этом таблица онлайна не очистится), то надо делать дополнительные проверки. У меня похожая задача, я добавил в таблицу текущих подключений время коннекта и время последней активности (в моем случае таблица исключительно для целей мониторинга, поэтому актуальность данных в ней не критична; соответственно отдельных процедур чистки "мертвых" юзеров я делать не стал). соответственно "мертвые" юзеры определяются на глаз. Можно завести отдельную задачу планировщика, которая будет выполнять отстрел "неотчитавшихся" юзеров раз в пару минут (потребуется сторонний софт планировщика + скрипт + isql). Вообще для таких случаев идеально подошла бы in-memory таблица, но, к сожалению, в ФБ такой нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 19:08:52 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Fr0sT-Brutalmiwaonline, ну да. Значит, все верно сделал :). А насчет обрывов - даже если внезапно разорвать соединение на клиенте, на сервере все равно возникнет событие дисконнекта. Угу. Через два часа на винде по дефолту. Fr0sT-BrutalВообще для таких случаев идеально подошла бы in-memory таблица, но, к сожалению, в ФБ такой нет. А каким образом в этой таблице появится информация, которой еще нет в ТРС/ІР стеке ОС? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 20:37:47 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
Долго отсутствовал, проблему решил с помощью MON$ATTACHMENTS В принципе, все решилось, буду тестировать - работа покажет подводные камни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 21:38:54 |
|
||
|
Проверка, подключен ли пользователь
|
|||
|---|---|---|---|
|
#18+
SlaveOwnerбуду тестировать - работа покажет подводные камни Vогу огорчить тебя прямо сейчас: обычные пользователи видят в MON$ATTAHCMENTS только себя. А по разрыву связи исчезают оттуда только через тот же KEEP_ALIVE таймаут. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2013, 21:46:25 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38382527&tid=1564353]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
231ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 235ms |
| total: | 583ms |

| 0 / 0 |
