Список вошедших в систему пользователей в BlazeDS - PullRequest
0 голосов
/ 28 июня 2011

Мне действительно нужна помощь специалиста!Кто-нибудь знает способ получения списка пользователей, в настоящее время подключенных к серверу BlazeDS?Есть ли какой-то встроенный механизм, чтобы это знать?или мне приходится реализовывать какую-то логику на стороне сервера каждый раз, когда пользователь получает доступ к моему Flex-приложению, где-то хранит все зарегистрированные данные пользователей и получает их позже?

1 Ответ

4 голосов
/ 28 июня 2011

Ближайшая вещь, о которой я могу подумать, используя BlazeDS, - это получить список клиентов, в настоящее время подписанных на пункт назначения, но это не решит проблему IMO.

Прежде всего, вам необходимо определить пункт назначения и убедиться, что все клиенты будут на него подписываться (см. Документацию BlazeDS). Затем на сервере вы можете получить ссылку на службу сообщений

MessageService messageService;

messageService = (MessageService) messageBroker.getService("message-service");

и запросите всех подписчиков с помощью метода getSubscribeersIds в экземпляре MessageService, указав имя пункта назначения. Это вернет только количество идентификаторов, сгенерированных внутри BlazeDS (они также доступны на клиентской стороне соединения).

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

Мне не очень нравится этот подход, возможно, кто-то придумал лучшее решение ..

...