列表当前登录BlazeDS中的用户

时间:2011-06-27 20:07:50

标签: flex blazeds

我真的需要一些专家帮助!有没有人知道如何获取当前连接到BlazeDS服务器的用户列表?知道这个有内置的机制吗?或者每次用户访问我的Flex应用程序并在某处存储所有登录用户详细信息并在以后检索它们时,是否必须实现某种服务器端逻辑?

1 个答案:

答案 0 :(得分:4)

使用BlazeDS,我能想到的最接近的事情是获取当前订阅目的地的客户列表,但这不能解决IMO的问题。

首先,您需要定义目标并确保所有客户端都实际订阅它(请参阅BlazeDS文档)。然后,在服务器上,您可以获得对消息服务的引用

MessageService messageService;

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

并在MessageService实例上询问所有具有getSubscribersIds方法的订阅者,指定目标的名称。这只会返回一些由BlazeDS内部生成的标识符(它们也可以在连接的客户端使用)。

为了解决同样的问题,我将这种方法结合起来用于存储登录用户的自定义服务器端逻辑(显式调用登录/注销方法)。定期查看订阅者可以帮助清理这个商店,因为根据我的经验,无法确保“注销”方法总能成功调用,特别是从浏览器中运行的Flex客户端,而BlazeDS将自动处理清理订阅者。

我不太喜欢这种方法,可能有人提出了更好的解决方案..