我正在使用一个简单的Flex组件连接到BlazeDS服务器,该组件只是试图订阅实时数据
以下是频道和消费者
<mx:ChannelSet id="channelSet">
<mx:AMFChannel url="http://localhost:8080/MyApp/messagebroker/streamingamf/"/>
</mx:ChannelSet>
<mx:Consumer id="consumer"
destination="feed"
channelSet="{channelSet}"
channelConnect="consumer_channelConnectHandler(event)"
channelDisconnect="consumer_channelDisconnectHandler(event)"
message="consumer_messageHandler(event.message)"
fault="consumer_faultHandler(event)"/>
我在连接后立即断开连接(调用了consumer_channelConnectHandler和consumer_channelDisconnectHandler)。
你有什么想法吗?
答案 0 :(得分:3)
这里有几点需要注意:
您有一个StreamingAMF端点配置为AMFChannel。这是错误的,我怀疑你想要StreamingAMFChannel
。
如果您与消费者使用AMFChannel
,则需要与AMFLongPolling
端点通信,在这种情况下,您的AMFChannel
应该pollingEnabled
设为true。但是,我怀疑你真的想要StreamingAMFChannel
,在这种情况下,请看第1点。
配置StreamingAMFChannel
后,您会发现仍然可以立即断开客户端连接。如果您有来自同一客户端的多个连接(即。标签),并且services-config.xml
设置max-streaming-connections-per-session
太低,则会发生这种情况。通常你会希望这个设置为1,但是对于开发来说,这可能很痛苦,所以设置得更高,并使用单独的services-config.xml
生产设置进行生产。