Как вы можете имитировать передачу данных в веб-приложение? - PullRequest
1 голос
/ 20 апреля 2009

Очевидно, что вы не можете отправить данные в веб-приложение, так как HTTP работает в цикле запрос-ответ .

Но какие хаки / методы, о которых вы знаете, могут имитировать передачу данных клиенту?

Ответы [ 3 ]

7 голосов
/ 20 апреля 2009

Вы можете использовать то, что известно как комета: http://en.wikipedia.org/wiki/Comet_(programming), https://stackoverflow.com/search?q=comet

По сути, javascript в браузере сразу отправляет запрос на сервер (используя XmlHttpRequest). Сервер не отвечает, пока у него нет данных для обслуживания.

Из статьи:

Браузер выполняет асинхронный запрос к серверу, который может ожидать доступности данных, прежде чем ответить. Ответ может содержать закодированные данные (обычно XML или JSON) или JavaScript, которые должны быть выполнены клиентом. В конце обработки ответа браузер создает и отправляет еще один XHR, чтобы дождаться следующего события. Таким образом, браузер всегда поддерживает невыполненный запрос к серверу, на который нужно отвечать при каждом событии.

1 голос
/ 20 апреля 2009

Вы ограничены опросом в HTTP. Один из ранних браузеров Netscape реализовал HTTP push Я помню, еще в начале века, но ничего не получилось.

Вы не можете использовать необработанные сокеты с Flash, Javascript / Xml, Silverlight. С Java и Active-X вы можете, но вам понадобится сертификат. Quake Live показывает это, все сети, очевидно, все еще основаны на UDP, но внутри плагина браузера для IE или Firefox.

Итак, опрос, опрос, опрос.

1 голос
/ 20 апреля 2009

В некоторых случаях опрос , т. Е. Отправка запроса с регулярным (коротким) интервалом может быть достаточной. Но ответ, приведенный выше - Кометы, - ближе всего к реальной сделке, когда речь идет об отправке данных без запроса клиента.

...