Страницы

День воскресный

Воскресный день был посвящен реализации ситуации настолько обычной для каждого пользователя, что она воспринимается как данность. (Впрочем как и все в мире разработки софта.)

Вот нашли вы собеседника, открыли чат-комнату и разместили сообщение. Собеседник находится в сети и доступен для разговора. Надо проинформировать его о появлении нового сообщения, например покрасневшей иконкой, дабы потом можно было на этот сигнал отреагировать и посмотреть кто же начал разговоры и надо ли их продолжать. 

Простая задача в которой кроется некая сложность. 
  1. Есть группа серверов, отвечающая за мониторинг постоянного присутствия в системе.
  2. Есть группа серверов, отвечающая за ведение каталога существующих чат-комнат. Эта же подсистема распределяет комнаты по собственно серверам обслуживания комнат.
  3. Есть группа серверов, обслуживающая чат-комнаты. 
Так вот, когда один собеседник разместил в сообщение. Если собеседник уже в сети и в комнате, сообщение прилетит ему напрямую. Если собеседник не в комнате, надо запросить серверы постоянного присутствия о статусе пользователя. Если он в сети, то через систему мониторинга присутствия отправить ему сообщение с приглашением присоединиться к разговору, где его уже ждут новые сообщения. 

На стороне пользователя это выглядит как покрасневшая иконочка "Last Chats".





Related Posts Plugin for WordPress, Blogger...