У меня есть одно приложение, работающее в следующей среде.
- GlassFish Server 4.0
- JSF 2.2.8-02
- PrimeFaces 5.1 final
- PrimeFaces Extension 2.1.0
- OmniFaces 1.8.1
- EclipseLink 2.5.2 с JPA 2.1
- MySQL 5.6.11
- JDK-7u11
Существует несколько общедоступных страниц, которые лениво загружаются из базы данных. Несколько CSS-меню отображаются в заголовке страницы шаблона, например, отображаются категории/подкатегории, популярные продавцы, новые продукты прибытия и т.д.
Меню CSS динамически заполняется из базы данных на основе различных категорий продуктов в базе данных.
Эти меню заполняются при каждой загрузке страницы, что совершенно не нужно. Некоторые из этих меню требуют сложных/дорогостоящих запросов по критериям JPA.
В настоящее время управляемый JSF beans, который заполняет эти меню, представлен в виде области. Все они должны быть областью применения, загружаться только один раз при запуске приложения и обновляться только тогда, когда обновляется/изменяется что-то в соответствующих таблицах базы данных (категория/подкатегория/продукт и т.д.).
Я сделал некоторые попытки понять WebSokets (никогда не пробовал раньше, совершенно новый для WebSokets), например this и this. Они отлично работали на GlassFish 4.0, но они не связаны с базами данных. Я все еще не могу правильно понять, как работают WebSokets. Особенно, когда используется база данных.
В этом случае, как уведомлять связанные клиенты и обновлять вышеупомянутые меню CSS с последними значениями из базы данных, когда что-то обновляется/удаляется/добавляется в соответствующие таблицы базы данных?
Простой пример /s был бы большим.