var producer:Producer = new Producer(); producer.destination = "TestTopic"; producer.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, handleConnect); producer.connect();
var producer:Producer = new Producer(); producer.destination = "TestTopic"; var msg:AsyncMessage = new AsyncMessage(); msg.body = "test message"; producer.send(msg);
根据重新连接间隔值以恒定速率尝试重新连接。如果在 Producer 的基础通道未连接或正在尝试连接时尝试重新连接,则该通道将开始尝试重新连接。在基础通道连接尝试正在进行时发生的后续 Producer 重新连接尝试将被有效忽略,直到正在进行的通道连接尝试成功或失败。
根据此值以恒定速率尝试重新连接。如果在 Producer 的基础通道未连接或正在尝试连接时尝试重新连接,则该通道将开始尝试重新连接。在基础通道连接尝试正在进行时发生的后续 Producer 重新连接尝试将被有效忽略,直到正在进行的通道连接尝试成功或失败。
如果未提供
如果使用 url 负载平衡(其中每个服务器声明唯一的 RTMP 或 HTTP URL,并且客户端将故障从一个 URL 转移到另一个 URL)群集化 ChannelSet,则当 ChannelSet 中的 Channel 连接首次成功时,ChannelSet 将自动为所有成员 Channel 发出对群集中的所有端点的请求,并将这些故障转移 URL 分别分配给各个 Channel。这允许 ChannelSet 中的各个 Channel 单独进行故障转移,并且当特定 Channel 的故障转移选项用尽时,ChannelSet 将进入到该集中的下一个 Channel 以尝试重新建立连接。
无论 clustering 为何,如果 Channel 无法连接或连接松动,ChannelSet 都将进入到它的下一个可用 Channel 并尝试重新建立连接。这允许 ChannelSet 在使用不同协议、端口等的 Channel 中进行搜索,以找出一个可以成功连接到其端口的 Channel。
MessageAgent 参数旨在支持旧的注销行为,并且调用此方法的客户端代码将不会传递 MessageAgent 引用。仅调用
服务组件也从它们的
此属性对于以下应用程序很有用:这些应用程序连接到远程主机以接收已推送的更新,且不主动发送任何消息,但仍希望在断开连接时收到通知(即使当网络层无法直接提供这样的通知时也是如此)。在基础连接已断开但未发出通知,且应用程序可以对断开连接做出适当响应时,通过发出定期检测信号,客户端可以强制网络层报告超时。
任何非正值会禁用到远程主机的检测信号。默认值 0 指示检测信号已禁用。如果应用程序设置此值,应该首选较长的时间间隔,而不是较短的时间间隔,才能避免对远程主机施加不必要的负载。以下示例是一个典型示例:低级 TCP 套接字保持活动状态的时间间隔通常默认为 2 小时。此时间间隔比启用检测信号的大多数应用程序将可能希望使用的时间间隔更长,但它可作为首选较长时间间隔而不是较短时间间隔的一个清晰先例。
如果当前已连接的基础 Channel 发出对远程主机的轮询请求,则因为定期轮询请求有效地代替了它们,所以检测信号被抑制。
MultiTopicProducer 将为其发送的每条消息分派 MessageAckEvent 或 MessageFaultEvent,具体取决于出站消息的发送和处理是否成功。
<mx:Consumer Properties subscriptions=""an empty ArrayCollection of SubscriptionInfo objects" resubscribeAttempts="5" resubscribeInterval="5000" timestamp="No default." />]]>
与常规 Consumer 类似,MultiTopicConsumer 发送生成 MessageAckEvent 或 MessageFaultEvent 的订阅和取消订阅消息,生成内容取决于操作是否成功。订阅后,MultiTopicConsumer 便会为它接收到的每条消息分派 MessageEvent。
调用
远程目标必须了解选择器表达式的值。
<mx:Consumer Properties resubscribeAttempts="5" resubscribeInterval="5000" selector="No default." timestamp="No default." />]]>
调用
远程目标必须了解选择器表达式的值。
<mx:tagname]]>
Properties channelSet="No default." clientId="No default." connected="false" destination="No default." requestTimeout="-1" subtopic="No default." Events acknowledge="No default." channelConnect="No default." channelDisconnect="No default." channelFault="No default." fault="No default." propertyChange="No default." />
注意:仅在高级用法中使用。使用此类创建如现有的 Producer 类和 Consumer 类这样的自定义消息代理。
注意:Adobe 建议使用 mx.messaging.ChannelSet.logout() 方法而不是此方法。
<mx:Producer Properties defaultHeaders="No default." />]]>
function sendMessage():void { var producer:Producer = new Producer(); producer.destination = "NASDAQ"; var msg:AsyncMessage = new AsyncMessage(); msg.headers.operation = "UPDATE"; msg.body = {"SYMBOL":50.00}; producer.send(msg); }
根据重新订阅间隔值以恒定速率尝试重新订阅。如果在 Consumer 的基础通道未连接或正在尝试连接时尝试重新订阅,则该通道将开始尝试重新连接。在基础通道连接尝试正在进行时发生的后续 Consumer 重新订阅尝试将被有效忽略,直到正在进行的通道连接尝试成功或失败。
根据此值以恒定速率尝试重新订阅。如果在 Consumer 的基础通道未连接或正在尝试连接时尝试重新订阅,则该通道将开始尝试重新连接。在基础通道连接尝试正在进行时发生的后续 Consumer 重新订阅尝试将被有效忽略,直到正在进行的通道连接尝试成功或失败。
通道是基于特定协议的渠道,用于在 MessageAgent 和远程目标之间发送消息。可使用
通道表示到远程端点的物理连接。默认情况下,通道可以跨目标共享。这意味着定向于不同目标的客户端可以使用同一 Channel 与这些目标进行通信。
注意:仅在高级用法中使用此类。使用此类可以创建诸如现有的 RTMPChannel、AMFChannel 和 HTTPChannel 之类的自定义通道。
无论何时通道试图连接到远程目标出现问题,通道及其子类都会发出 Channel.Connect.Failed 代码。在通道已经连接但从其基础 NetConnection 获取 Call.Failed 代码之后,AMFChannel 对象就会发出 Channel.Call.Failed 代码。
Channel 子类需要覆盖
此属性是在启用群集时自动填充的。如果不使用群集,则可以设置自己的值。
注意:Channel 的子类必须覆盖此方法并返回代表其支持的协议的字符串。支持的协议字符串示例有“rtmp”、“http”或“https”。
请求超时对于要求远程目标做出响应的 RPC 样式消息传递最为有用。