Модераторы: Се ля ви
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Мессенджер + http сервер, Обновление статуса usera 
:(
    Опции темы
wendstor
  Дата 25.1.2012, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.1.2012

Репутация: нет
Всего: нет



Начил писать программу похожую на мессанджер, но с расширенным функционалом, но вот возник вопрос о реализации обновления статуса акаунта на сервере. Дело в том что программно можно реализовать отсылку данных на сервер о статусе акаунта (т.е. online, offline), а в случае если система ушла BSOD или свет "вырубили", то тогда на сервере и будет статус user'a online. Принцип реализации такой же как на примере ICQ, Skype. Так вот хочу реализовать связку ПО+Apache+MySql. Вообще, какими спосабами можно выкрутиться из данной ситуации?
Если кто сталкивался с подобной реализацией то пишите: ICQ 551911966 Skype Wendstor1982

Это сообщение отредактировал(а) wendstor - 25.1.2012, 11:18
PM MAIL ICQ Skype   Вверх
newbee
Дата 25.1.2012, 11:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: нет
Всего: 19



Через некоторое время сокет отвалится - реагируй на это и меняй статус. Еще можно периодически слать свои специальные пакеты (аля ping-request pong-response) и, если в течение некоторого интервала времени клиент не отвечает, принудительно закрывать соединение и менять статус.


--------------------
You're face to face
With man who sold the world
PM   Вверх
wendstor
Дата 25.1.2012, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 21.1.2012

Репутация: нет
Всего: нет



Цитата(newbee @ 25.1.2012,  11:36)
Через некоторое время сокет отвалится - реагируй на это и меняй статус. Еще можно периодически слать свои специальные пакеты (аля ping-request pong-response) и, если в течение некоторого интервала времени клиент не отвечает, принудительно закрывать соединение и менять статус.

так это всё понятно с реализацией в программе. Наверное не так объяснил, и так будет программа на Delphi она подключаеться к http серверу, устанавливает статус на http серваке (статус заноситься в таблицу MySQL), при нормальной работе подключения, отключения я смогу на http сервер послать свой статус, но вот как быть если произошли "траблы" на стороне клиента, статус клиента так и останиться в таблице MySQL "активен" вот мне нужно более рациональное решение по слежению за статусом на стороне http сервера. Вот не знаю как это решить, да и с минимальными нагрузками на сам http сервер...

Это сообщение отредактировал(а) wendstor - 25.1.2012, 12:19
PM MAIL ICQ Skype   Вверх
newbee
Дата 25.1.2012, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бревно
**


Профиль
Группа: Участник
Сообщений: 703
Регистрация: 24.8.2011

Репутация: нет
Всего: 19



Я заголовок не читала. Если у тебя http, то общение идет в одни ворота (сервер), то есть опрашивать клиента нельзя. Значит на стороне сервера нужно делать систему мониторинга клиентов: если клиент не проявляет активность в течение N секунд, производить процесс отключения (смена статуса в БД и наверное еще какие-то сопутствующие манипуляции). А чтобы сервер не отключал живой, но бездействующий клиент, клиент должен следить за своей активностью и, если за n<<N секунд ничего не отправлял, бросать служебный пакет "я живой". Ну и разумеется примерно раз в ~n секунд сервер должен выполнять процесс мониторинга.

В качестве N и n я бы выбрала 15 и 5 минут соответствуенно, дополнительная нагрузка на сервер и сеть ничтожны.


--------------------
You're face to face
With man who sold the world
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила раздела "Философия программирования":
Се ля ви

Форум "Философия программирования" предназначен для обсуждения вопросов, так или иначе связанных с философскими аспектами разработки ПО:

• вопросы перспективного развития методов написания ПО;

• изменяющиеся языки и методологии программирования;


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Се ля ви.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Философия программирования | Следующая тема »


 




[ Время генерации скрипта: 0.1235 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.