В API действительно есть решение для этого. Первым шагом является написание класса, который расширяет класс FlexClientOutboundQueueProcessor. Вам нужно переопределить один метод:
public void add(List outboundQueue, Message message);
По сути, все, что вам нужно сделать, это написать некоторую логику, чтобы определить, следует ли вам выполнить следующий вызов:
outboundQueue.add(message)
Проще говоря, если вы не добавите сообщение в очередь, сообщение не будет отправлено клиенту. Другой важный метод в этом классе:
FlexClient getFlexClient()
, которую вы можете использовать для получения связанной FlexSession и, в конечном счете, информации для аутентификации, которая предположительно существует в вашем приложении.
Как только это будет сделано, вам просто нужно зарегистрировать процессор на соответствующих каналах. Просто добавьте этот элемент в элемент «properties» элемента «channel-definition»:
<flex-client-outbound-queue-processor class="com.foo.YourProcessor"/>
Полагаю, вы также можете указать вложенный элемент "properties" для процессора очереди, но я не верю, что это необходимо.