LINUX.ORG.RU
ФорумTalks

Долгожданная фишка на jabber.ru


0

0

Довольно часто бывают ситуации, когда пользователь отключился, но статус у него по прежнему был он лайн. Теперь к таким "висящим" пользователям сообщения не доходят а появляется сообщение с ошибкой.

Только всё равно это какой-то костыль, надо устранять саму проблему "висения" :)

Ак висяки наверно пинговать надо, но это лишняя нагрузка на сервер и на каналы. При таком кол-ве пользователей будет бесконечный пинг всех и вся!

hibou ★★★★★
()
Ответ на: комментарий от hibou

Сейчас приходится самому собеседников пинговать, особенно если он с телефона. К сожалению не все клиенты пинг поддерживают.

Payalnic ★★
() автор топика
Ответ на: комментарий от Payalnic

Думается, достаточно уведомления о доставке сообщения. Т.е. если увидел что сообщение не доставлено, то попозже пробуешь еще раз. И т.д.

hibou ★★★★★
()
Ответ на: комментарий от hibou

Нет конечно. От того что многие клиенты позволяют видеть висит собеседник или нет, висеть он от этого не перестаёт.

Payalnic ★★
() автор топика
Ответ на: комментарий от Payalnic

Как ты предлогаешь решить проблему? Про пинг я уже сказал. Хотя нужно проверить мою гипотезу на практике в боевых условиях. Думаю, когда клиенты сами пингуют своих товарищей - это все же меньше, нежели этим будет заниматься сервер.

hibou ★★★★★
()
Ответ на: комментарий от Payalnic

В ICQ не наблюдал? Да ладно ка! Постоянно по полчала висят люди если из программы не выйдут, а просто соединение завершают и комп выключают! Про MSN не знаю, не пользовался.

hibou ★★★★★
()
Ответ на: комментарий от hibou

это прямо изобретение велосипеда... в IRC такая фича изначально реализована - если пользователь не проявляет активности в течение скажем X секунд - сервер посылает PING, если клиент ответил на него PONG-ом - все ок, если не ответил пару раз - отключается. и ничего - даже крупные сети от перегрузок пингами не умирают ;)

anonymous
()
Ответ на: комментарий от anonymous

А почему нельзя все в самом клиенте реализовать? Перехватывать SEGKILL, к примеру, и делать logout для сервера?

anonymous
()

>а появляется сообщение с ошибкой.

А зачем? Почему не положить в очередь?

И вообще, неужели выставить SO_KEEPALIVE + tcp_keepalive_time поменьше настолько трудно, что это дорасло до "ДОЛГОжданности"?

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

> выставить SO_KEEPALIVE + tcp_keepalive_time поменьше

говорят, что пробовали, бомбусятники ругались что выкидывает.

А фича работает криво.

Вот в talks@ висит в админах одна такая missenka, и на всё, что постится в толксы, приходит от неё еггог.

И покикать её оттуда нельзя, ибо она админ.

INFOMAN ★★★★★
()
Ответ на: комментарий от anonymous

Выдерни проводочег из розетки, узнаешь, почему нельзя.

INFOMAN ★★★★★
()
Ответ на: комментарий от anonymous

KILL вроде неперехватываемый сигнал. Перехватывают обычно TERM. Так наверно в клиентах так и сделано, в нормальных. Просто некоторые соединение завершают диал-ап, а потом прогу выключают.

hibou ★★★★★
()

Диалгопники всех зарулят!

FiXer ★★☆☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.