![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
[+1 31.01.11]
Регистрация: Jun 2008
Сообщений: 91
|
Всем привет !
Много видел в темах что советуют для написания онлаин игр писать свой сервер на c++ Я написал всой socket сервер на с++ , но тут появилась проблема как отловить на стороне сервера что клиент отключился например (отключился нет у клиента или еще что - то , порыв связи) вобщем разумного решения этой проблеме я не нашел ! Может кто сталкивался с такой проблемой ? |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 256
|
Можно сверять время приема последнего пакета от клиента и текущее время на сервере. Если разница между ними большего некоего допустимого времени ожидания ответа от клиента сервером, то клиент считается неактивным.
__________________
:emocry: |
|
|||||
|
[+1 31.01.11]
Регистрация: Jun 2008
Сообщений: 91
|
Цитата:
Впринцыпи идея - нада все обдумать ! Если у кого будут еще предложения прошу высказыватся - или может уже кто на приктике реализовывал ! Добавлено через 33 часа 3 минуты Вопрос еще актуален , кто еще как реализовывал подобную проблему ? |
|
|||||
|
[+1 04.05.08]
Регистрация: May 2008
Адрес: Czech, Prague
Сообщений: 65
|
Цитата:
Других решений нет!!! |
|
|||||
|
Banned
Регистрация: Jun 2009
Сообщений: 9
|
Ну да, конечно ...
![]() А как же Comet-технология? Неплохо реализована в Tomcat 6, правда, до 16-ой версии были глюки с NIO, потом исправили (юзаю сейчас 19 релиз - все пучком). Если рассматривать в данном контексте, то мгновенно реагирует не только на ошибку, но даже распознает дисконнект - таймаут, принудительный разрыв, истечение сессии, перезагрузка клиента ... Мгновенно реагирует не только сервер, но и клиент. На клиенте, естественно, никаких таймеров или допзапросов - нужен только изначальный коннект. |
|
|||||
|
[+1 31.01.11]
Регистрация: Jun 2008
Сообщений: 91
|
Цитата:
Спасибо ! Но я реализовал как предложил lowka - тестировал все работает как часы , может после будут проблемы - но пока нет ! Comet-технология я думаю тоже так реализована - но может и нет ! |
|
|||||
|
[+1 04.05.08]
Регистрация: May 2008
Адрес: Czech, Prague
Сообщений: 65
|
Смотря для чего использовать Comet.
![]() Больше того, он работает по схожему принципу. Вам знакомо понятие датаграма? Понятно что всё обернули красиво но что делать если число пользователей превысит 2байта допустимых открытых соединений? Или что делать в ситуации когда например у вас отключат свет в доме и на крыше потухнет свитч? Сервер подумает что клиента нет! А что будет если соединение восстановится? Сервер по прежнему будет думать что клиент мёртв! Ибо, коннект нужно инициировать первым клиенту ![]() Короче, технология интересная но использовать нужно выборочно. ![]() Последний раз редактировалось Foli; 30.06.2009 в 19:51. |
![]() |
![]() |
Часовой пояс GMT +4, время: 20:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|