Flex Message Service消息服务
Flex Message Service(FMS)是一种消息服务系统,用于在Flex应用和服务器之间或不同Flex应用之间进行消息的发送和接收。FMS支持发布/订阅(Pub/Sub)模型和点到点(Point-to-Point)模型,允许应用之间进行异步通信。消息由头信息(header)和主体(body)两部分组成。头信息包括消息的标识和路径信息,而消息主体则包含应用数据。在Flex消息服务中,发送消息的应用被称为生产者(producer),而接收消息的应用被称为消费者(consumer)。消息接收点(message destination)是负责数据转换为消息,以及将消息转换为消费者可以使用的数据格式的组件。消息通道(message channel)链接生产者和消费者到消息接收点,而消息适配器(message adapter)充当FMS和其他系统(例如JMS系统)之间的转换器。通过适配器,不同系统之间的应用可以共享同一个消息接收点,实现跨系统消息通信。 FMS消息服务支持创建生产者和消费者的组件。创建生产者的代码示例如下,其中指定了生产者的id、目标目的地以及确认和错误处理函数: ```xml ```生产者发送消息通常包含以下三个步骤: 1.创建消息对象(如AsyncMessage); 2.定义对象的主题内容(即消息体); 3.调用send()方法发送消息。例如,创建一个AsyncMessage对象并发送内容为“测试”的消息: ```java var content:AsyncMessage = new AsyncMessage(); content.body = "测试"; user.send(content); ```消息中可以添加额外信息,如头信息: ```java var content:AsyncMessage = new AsyncMessage(); content.headers = new Array(); content.headers["user"] = "张三"; ```发送消息时可能会遇到错误,FMS提供了事件处理机制,例如requestTimeout事件和传输故障。错误处理函数可以通过检查ErrorMessage下的FaultCode属性来获取错误详情,并根据错误类型决定是忽略错误还是重新发送消息。消费者创建过程与生产者类似,但需要订阅接收点才能接收消息。消息过滤是通过设置consumer组件的selector属性实现的,可以根据头信息对消息进行过滤。例如,selector属性可以设置为"age>18"来过滤消息。 Subtopic用于生产者向接收点发送信息时对信息进行分类,消费者可以订阅特定的Subtopic或Subtopic集合。使用通配符*可以订阅多个Subtopic。消息服务的配置在flex服务配置文件(通常是service-config.xml)中进行,主要任务包括定义消息接收点、设置消息通道、配置消息服务适配器以及设置安全策略。消息服务接收点是生产者和消费者组件与服务端处理程序之间的链接。消息通道是消息传输路径,常见的有RTMP通道和AMF通道。RTMP通道保持客户与服务器之间的持续连接,而AMF通道需要轮询服务器以接收新消息。消息服务适配器用于与其他系统交互时提供消息传递功能。安全策略通过security constraint实现,定义了接收点的访问权限,并在用户访问之前进行授权和验证。网络属性设置定义了客户端与服务器之间消息通信的行为,通常位于flex服务配置文件中,为标签下的标签内。
35KB
文件大小:
评论区