我的 flex 前端使用 BlazeDS/Tomcat 来收集实时数据。
我在标准流媒体 amf 频道上使用普通消费者。
<mx:ChannelSet id="channelSet">
<mx:StreamingAMFChannel id="streamingAMF" url="messagebroker/streamingamf/" />
</mx:ChannelSet>
<mx:Consumer id="consumer" channelSet="{channelSet}"
channelConnect="consumer_channelConnectHandler(event)"
channelDisconnect="consumer_channelDisconnectHandler(event)"
message="consumer_messageHandler(event.message)"
fault="consumer_faultHandler(event)"
resubscribeAttempts="-1"
resubscribeInterval="2000"/>
此设置在所有设置中都可以正常工作,但以下设置除外。可见的差异是:
- Windows 2008 服务器与 Linux 或更旧的 Windows
- Java 1.7.0 与 1.6.0
- Tomcat 7.0 与 6.0
症状是consumer.subscribed从未设置为true,尽管调用了consumer.subscribe()并在服务器端看到:
[BlazeDS]13:49:03.922 [DEBUG] [Endpoint.FlexSession] FlexSession created with id '275E7BE0E76EC4C4E8DB08F770BE2846' for an Http-based client connection.
[BlazeDS]13:49:03.922 [INFO] [Endpoint.General] Channel endpoint skydata-streaming-amf received request.
我检查了所有日志(catalina、stdout 和 stderr),但没有任何明显的线索说明出了什么问题。再一次,这个完全相同的设置适用于所有其他情况有
什么想法吗?