Есть ли лучший Ajax Push для JSF 2.0, чем Icefaces - PullRequest
4 голосов
/ 16 августа 2010

Я нахожусь в ситуации, когда я хотел бы реализовать Ajax Push в веб-приложении на основе Java, чтобы обновлять такие вещи, как количество товаров на складе на веб-странице, по мере их изменения без какого-либо взаимодействия с пользователем.Я понимаю, что технология, необходимая для этого, называется Ajax Push.У меня также есть некоторый опыт работы с JSF 2.0, и это предпочтительно, но не обязательно.

Сначала нам понадобится демонстрация, показывающая это примерно через пару недель, но если демонстрация будет принята, у нас будет достаточно времени, чтобы сделать это правильно.

Я огляделся и обнаружил, что, очевидно, Icefaces делают это очень хорошо, и я посмотрю на это.Я просто хотел бы услышать, существуют ли какие-то другие, которые, возможно, даже лучше для нас использовать?

Пожалуйста, нет, «это три лучших хита из ответов Google».Я хотел бы услышать мнения, основанные на опыте.

Ответы [ 7 ]

3 голосов
/ 17 августа 2010

Теперь вы можете использовать Ajax Push вне ICEfaces. Оформить заказ http://www.icepush.org/. Существуют клиентские адаптеры для JSP, Spring MVC, Wicket, GWT, jQuery, прототипа и Grails.

2 голосов
/ 16 августа 2010

Мы попробовали как Icefaces (в режиме JSF 1.2), так и Atmosphere / Comet с Primefaces.

Push Icefaces отлично работал из коробки.

Нам не удалось заставить Атмосферу работать(в Primefaces), но это может быть потому, что мы попробовали его с последней версией (0.6), а Primefaces пока не поддерживает ее - поэтому сейчас мы ждем обновленную версию (обещано, что она будет следующей большойфункция после p: dataTable была переписана).В нашем случае push не был критически важным элементом демонстрации, и мы могли легко использовать опрос вместо реального push-решения.

Icepush было очень легко запустить и запустить, в то время как Atmosphere не очень хорошо задокументирована (ИМХО) и требует кучу банок и комплектаций.Это точно не для начинающих.

Так что, если ajax: push является ключевой частью вашей демонстрации, я бы посоветовал вам остаться с JSF 1.2 и Icefaces.По крайней мере, пока демо не закончено и клиент не будет доволен - вы все равно можете потратить время на настройку атмосферы после этого; -)

2 голосов
/ 16 августа 2010

Я не знаю, лучше ли это, так как я не делаю IceFaces, но PrimeFaces также имеет компонент <p:push>. Он использует Атмосфера под капотами, чтобы быть максимально независимым от сервера, что, в свою очередь, уже довольно круто. Он абстрагирует все детали, специфичные для сервера приложений. Также смотрите эту статью о Сервлет 3.0 против атмосферы :

Атмосфера всегда автоматически определяет лучший асинхронный API при развертывании приложения. Всегда сначала пытайтесь найти 3.0 Async API. Если это не удается, он попытается найти собственный API WebServer, такой как Grizzly Comet (GlassFish), CometProcessor (Tomcat), Continuation (Jetty), HttpEventServlet (JBossWeb), AsyncServlet (WebLogic), Google App Engine (Google). Наконец, будет использоваться резервный поток ввода-вывода для эмуляции поддержки асинхронных событий.

Как заставить все это работать, подробно описано в главе 6 Руководство пользователя PrimeFaces (PDF) во вкусе приложения чата, как оно представлено на странице демонстрации <p:push>.

1 голос
/ 24 августа 2010

Я думаю, что ICEfaces - это лучшее решение для AJAX PUSH, они первопроходцы, и, на мой взгляд, у них лучшая реализация.

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

Для jsf 2.2 существует независимая основанная на фреймворке реализация push, называемая Ext JSF Push. Он полностью интегрирован в JSF и может передавать один клиент, передавать рендеринг непосредственно группе клиентов или передавать события рендеринга группе клиентов:

<e:push id="some-channel" direct="true">
    <h:outputText id="text" value="#{pushTest.value}"/>
</e:push>

Событие рендеринга внутри push-тега может быть вызвано либо традиционным атрибутом рендеринга, либо вызовом кода. Рендеринг прозрачно транслируется всем подключенным клиентам (http://www.intersult.com/wiki/page/JSF%20Ext%20Push).

0 голосов
/ 22 октября 2010

Primefaces выглядит многообещающе, но функциональность push не работает с их последней версией. В бета-версии Icefaces 2 push работает OOTB.

0 голосов
/ 25 августа 2010

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

Начнем с того, что ICEfaces предоставляет наиболее естественную модель для разработки push-приложений. Вы просто представляете себе триггеры на стороне сервера, вызывающие изменения состояния в вашем приложении. ICEfaces и JSF делают все остальное, влияя на плавную визуализацию нового состояния. Нет беспорядочной разметки push-тегов, где вы должны точно указать, как изменяется презентация с каждым push-событием. Если вы знаете JSF, добавить push в приложение просто с помощью ICEfaces. Сначала запустите базовое приложение JSF, а затем добавьте необходимую логику push в свой код на стороне сервера. Никаких других изменений не требуется.

В долгосрочной перспективе вы должны знать, что ICEfaces предоставляет все технологии развертывания, которые вам понадобятся для развертывания на уровне предприятия. Enterprise Push Server занимает центральное место в этом, поскольку он обеспечивает полное управление push-соединениями в кластерных средах (см .: EPS ). ICEfaces Ajax Push работает в широком спектре производственных сред на многих предприятиях из списка Fortune 500, поэтому вы можете быть уверены, что он будет соответствовать вашим требованиям. Кроме того, доступна профессиональная поддержка клиентов. Все это ключевые характеристики, которые помогут вам продать вещество, стоящее за вашей демонстрацией.

Ничто на рынке не сравнится, и с нетерпением ждем ICEfaces 2.0, который совместим с JSF 2.0 и предоставляет возможности Ajax Push следующего поколения. Теперь он доступен в бета-версии.

...