Как чат Facebook синхронизирует разговоры между окнами / вкладками - PullRequest
7 голосов
/ 10 января 2012

Иногда во время чата, если я отправляю сообщение другу в чате в одном окне и переключаюсь в другое окно / вкладку, где открыт Facebook (и, естественно, окно чата также открыто), там автоматически появляется мое сообщение.*

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

1 Ответ

6 голосов
/ 10 января 2012

Вот блог на эту тему от Facebook: https://www.facebook.com/note.php?note_id=14218138919

То, что вы хотите знать, наиболее вероятно описано в этом параграфе:

Для чата Facebook мы откатилинаша собственная подсистема для регистрации сообщений чата (в C ++), а также веб-сервер, управляемый epoll (в Erlang), который хранит разговоры пользователей онлайн в памяти и обслуживает HTTP-запросы с длительным опросом.Обе подсистемы сгруппированы и разделены для обеспечения надежности и эффективного восстановления после отказа.Почему Эрланг?Короче говоря, потому что проблемный домен подходит Erlang как перчатка.Erlang - это функциональный ориентированный на параллелизм язык с чрезвычайно малыми «процессами» пространства пользователя, семантикой передачи сообщений без разделения ресурсов, встроенным распределением и философией «сбой и восстановление», подтвержденной двумя десятилетиями развертывания на больших программных средствах.производственные системы реального времени.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...