Как использовать IcePush для обновления дисплея клиента? - PullRequest
0 голосов
/ 22 марта 2012

Я пытаюсь установить онлайн-игру в шашки, используя JSF2 на GlassFish 3, где вся логика игры позаботилась о EJB.Дело в том, что я хочу, чтобы дисплей игрока А обновлялся после хода игрока В.после того, как игрок B закончил свой ход, я звоню

pushContext.push("groupName")

на bean-компонент кода (хотя в коде xhtml есть тег <icecore:push group="groupName" />), проблема в том (как мне кажется)Объект игрового поля игрока еще не был обновлен из EJB, поэтому на дисплее нечего обновлять.Отображение доски игрока А обновляется только после того, как он / она закончит свой ход (и в этот момент его код компонента запрашивает обновленную доску от EJB).я думал, что нашел решение здесь .Мой план состоит в том, чтобы установить функцию JS внутри xhtml, которой код компонента будет вызывать с помощью тега <icep:register>, и эта функция JS будет вызывать функцию Java внутри кода компонента, которая будет запрашивать обновленную доску из EJBи затем обновил бы дисплей.
дело в том, что я нигде не могу найти, как реализовать любой из тегов 'icep'.когда я помещаю этот тег в мой код, я получаю ошибку компиляции.Что мне нужно добавить в мой проект, чтобы это работало?или есть совершенно другой (и лучший) подход к решению моей проблемы?

ура, eRez

1 Ответ

0 голосов
/ 28 марта 2012

<icep:register> является частью интеграции ICEpush JSP и предназначен только для страниц JSP, а не для страниц JSF.Возможно, именно поэтому у вас возникла проблема с компиляцией.Вы можете использовать API регистрации Javascript.Но вы смотрели на использование PortableRenderer?Если ваш ejb в том же jvm, это может сработать и вам будет намного проще.Проверить:

http://wiki.icesoft.org/display/ICE/Ajax+Push+-+APIs#AjaxPush-APIs-PushingfromoutsidetheJSFcontext

Спасибо, Филипп

...