Как вы можете отправить данные на клиент веб-страницы? - PullRequest
5 голосов
/ 04 июня 2009

Я только что узнал о AJAX Push Engine, но он работает на Linux / Apache, что мне не подходит.

http://www.ape -project.org /

В настоящее время с AJAX, чтобы поддерживать актуальность страницы, мне приходится часто опрашивать сервер, что не очень хорошо для сайта с высоким трафиком. Возможность передавать данные клиенту только при необходимости - отличный вариант, но изначально JavaScript не поддерживает сокеты, AFAIK. Одна хитрость, о которой я читал, но сайт теперь отсутствует, это использование Flash-модуля для обработки сообщений сокетов и передачи сообщений в JavaScript.

Проблема с исследованием этого подхода состоит в том, что «push-код JavaScript», поскольку ключевые слова предлагают функцию push-вывода для массивов вместо нужного мне контекста.

Как установить постоянное соединение с сервером для принудительной связи в браузере? Нужен ли мне Flash / ActionScript или есть другая опция, которая будет работать со всеми активными в настоящее время браузерами? (IE6 / 7/8, FF3, Safari, Chrome)

Когда дело доходит до сервера, мне также нужно решить сложности, связанные с политикой Origin, а также с безопасностью порта. Я ценю все, что вы можете указать, что объяснит доступные варианты.

Ответы [ 4 ]

4 голосов
/ 04 июня 2009

То, что вы хотите, это COMET , или я бы также посмотрел длинный опрос .

Я задал похожий вопрос.

0 голосов
/ 22 ноября 2015

Вещь, которую вы ищете - это веб-розетка https://en.wikipedia.org/wiki/WebSocket

0 голосов
/ 04 июня 2009

Это интересный материал, но я не читал ничего о проблемах масштабируемости на этих вики-страницах. Что делает веб-сервер, если у вас 10 000 открытых длинных опросов?

Кроме того, для тех, кто не знаком с базовыми концепциями, важно понимать, что передача данных с сервера клиенту специальным образом невозможна и всегда будет. Даже если протокол HTTP поддерживает это, сеть этого не сделает, особенно если задействован брандмауэр NAT.

Таким образом, любые решения, которые утверждают, что предлагают push-связь с сервером, должны опираться на соединения, которые инициируются клиентом, остаются открытыми и в конечном итоге истекают. У меня есть опасения по этому поводу, потому что это должно иметь негативные последствия для масштабируемости и производительности сервера.

0 голосов
/ 04 июня 2009

Библиотека Direct Web Remoting (DWR) поддерживает Reverse Ajax, который звучит как то, что вы ищете. Он поддерживает Comet (наряду с Polling и PiggyBack). Более подробная информация на их сайте: http://directwebremoting.org/dwr/index.html

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