По сути, вы просто удерживаете запрос на сервере, пока либо 1) не появятся доступные данные, либо 2) сервер не достигнет порогового значения и не скажет: «забудь это, восстанови, чтобы я знал, что ты действительно все еще там».Сложность этого подхода заключается в масштабируемости серверной стороны, поскольку обычно веб-серверы предназначены для максимально быстрого выполнения, а порождение большого количества потоков / процессов для входящих «долго удерживаемых» запросов затруднено.
Этот длительный запрос обычно Xhr, если он находится в одном домене, или JSONP, если он междоменный.
Мы написали полный кометный клиент для нашего сервера IIS / ASP.NET Comet ( WebSync ), который вы можете проверить и, возможно, получить представление.Найдите в источнике файл client.js (отметьте? Debug = true, чтобы увидеть несжатую версию), и вы увидите некоторые ссылки на запросы "connect" - это запросы на длинный опроссервер, который ожидает ~ 25 с каждого запроса, при условии, что данные не поступают.