Flex Messaging安全性

时间:2009-05-27 15:34:01

标签: flex messaging blazeds

我正在尝试为flex应用程序创建一个模块,我想向客户端发送通知。我一直在寻找BlazeDS消息服务来向客户推送通知,但我希望能够向某些客户发送某些更新。 Flex通知框架似乎不允许这样做 - 例如,如果我们在消息中有一个字段,其值为用户的用户ID,理论上任何客户端都可以订阅任何给定用户ID的所有消息,并且没有验证服务器端,以确保已订阅的客户端以该用户ID登录。

我在这里错过了什么,或者是在客户端编写我自己的轮询机制的最佳方法?

2 个答案:

答案 0 :(得分:1)

API中确实有这样的解决方案。第一步是编写一个扩展FlexClientOutboundQueueProcessor类的类。您需要覆盖一个方法:

public void add(List outboundQueue, Message message);

基本上你需要做的就是写一些逻辑来确定你是否应该进行以下调用:

outboundQueue.add(message)

简单地说,如果您不将消息添加到队列,则不会将消息推送到客户端。本课程中另一个重要的方法是:

FlexClient getFlexClient()

您可以使用它来获取关联的FlexSession以及最终可能存在于您的应用中的身份验证信息。

完成此操作后,您只需要使用适当的通道注册处理器。只需在“channel-definition”元素的“properties”元素中添加此元素:

<flex-client-outbound-queue-processor class="com.foo.YourProcessor"/>

我相信您也可以为队列处理器指定嵌套的“properties”元素,但我不相信它是必需的。

答案 1 :(得分:1)

只要您disable wildcard subscriptions,就可以使用子主题。