Уведомлять только определенных пользователей через WebSockets, когда что-то изменяется в базе данных

Чтобы уведомлять всех пользователей через WebSockets, когда что-то изменяется в выбранных объектах JPA, я использую следующий базовый подход.

@ServerEndpoint("/Push")
public class Push {

    private static final Set<Session> sessions = new LinkedHashSet<Session>();

    @OnOpen
    public void onOpen(Session session) {
        sessions.add(session);
    }

    @OnClose
    public void onClose(Session session) {
        sessions.remove(session);
    }

    private static JsonObject createJsonMessage(String message) {
        return JsonProvider.provider().createObjectBuilder().add("jsonMessage", message).build();
    }

    public static void sendAll(String text) {
        synchronized (sessions) {
            String message = createJsonMessage(text).toString();

            for (Session session : sessions) {
                if (session.isOpen()) {
                    session.getAsyncRemote().sendText(message);
                }
            }
        }
    }
}

Когда выбранный объект JPA изменяется, возникает соответствующее событие CDI, которое должен наблюдать следующий наблюдатель CDI.

@Typed
public final class EventObserver {

    private EventObserver() {}

    public void onEntityChange(@Observes EntityChangeEvent event) {
        Push.sendAll("updateModel");
    }
}

Наблюдатель / потребитель вызывает статический методPush#sendAll()&nbsp;определяется в конечной точке WebSockets, которая отправляет сообщение JSON в качестве уведомления всем связанным пользователям / соединениям.

Логика внутриsendAll()&nbsp;метод должен быть как-то изменен, когда только выбранные пользователи должны быть уведомлены.

Уведомить только пользователя, который отвечает за изменение рассматриваемой сущности (это может быть пользователь-администратор или зарегистрированный пользователь, который может изменить что-либо только после успешного входа в систему).Уведомить только конкретного пользователя / ов (не всех). «Конкретный» означает, например, что когда на этом сайте проголосовали за сообщение, уведомляется только владелец сообщения (за него может проголосовать любой другой пользователь с достаточными привилегиями).

Когда начальное рукопожатие установлено,HttpSession&nbsp;можно получить доступ, как указано вэтот&nbsp;ответ, но этого недостаточно для выполнения задач, упомянутых выше двумя пунктами. Так как он доступен, когда сделан первый запрос квитирования, любой атрибут, установленный для этого сеанса впоследствии, не будет доступен в конечной точке сервера, то есть, другими словами, любой атрибут сеанса, установленный после установления квитирования, будет недоступен.

Каков наиболее приемлемый / канонический способ уведомления только избранных пользователей, как указано выше? Некоторые условные утверждения вsendAll()&nbsp;метод или что-то еще где-то требуется. Похоже, что он должен делать что-то, кроме только пользователяHttpSession.

Я использую GlassFish Server 4.1 / Java EE 7.