Мы все знаем о push (разветвление при записи) против pull (разветвление при чтении) при разработке системы feed / twitter в социальной сети.
В режиме push мы записываем в список обновлений (сообщения, твиты и т. Д.) Друзей автора (или подписчиков) каждый раз, когда автор генерирует новое сообщение, так что его подписчику не нужно запрашивать все кормить своих последователей каждый раз.
В режиме извлечения мы позволяем подписчику запрашивать все потоки своих друзей каждый раз, когда ему нужно просмотреть все каналы своих друзей.
Но в обоих случаях, какой механизм обычно используется, чтобы позволить человеку видеть обновленные каналы в РЕАЛЬНОМ ВРЕМЕНИ на веб-сайте? (Я думаю, что FB или твиттеру не понадобится, чтобы вы вручную обновляли страницу, чтобы видеть новые сообщения от друзей).
Допустим, Джон пишет сообщение, а в режиме push он помещает (пишет в SQL или в кэш redis) указатель этого сообщения на ленту всех друзей, как браузер одного из друзей узнает, что теперь есть обновление от Джона?