Facebook использует длинные опросы.
Пока вы находитесь на своей странице, у них есть скрипт, постоянно выдающий запросы на определенный URL. Вместо немедленного ответа сервер, обрабатывающий этот URL-адрес, сначала ожидает поступления сообщения в свою очередь, а затем отправляет это сообщение пользователю. Если истекло определенное время ожидания, сервер отвечает, не отправляя сообщения, и клиентский скрипт выполняет другой запрос на этот URL.
Чтобы увидеть это в действии, откройте вкладку Net в Firebug на странице Facebook и подождите пару минут. Вы должны увидеть запросы, которые длятся в течение минуты, а затем сопровождаются новым запросом.