2009-08-14 73 views
0

我在Flex-BlazeDS中使用消息傳遞。當AIR客戶端啓動時,它將連接到目標和特定的子主題。在運行時,用戶可以使用組合框訂閱組不同的實時數據的進來,這個組合框更改事件改變了由副標題:更改BlazeDS和Flex中的子主題

messagingConsumer.subtopic = subtopicComboBox.selectedLabel; 
messagingProducer.subtopic = subtopicComboBox.selectedLabel; 
messagingConsumer.subscribe(); 

隨後的消息被髮送到服務器與新的副標題名稱以及服務器知道發送到新的子主題。

這整個機制似乎非常糟糕,我想知道是否有其他人已經嘗試過這種成功?大多數時候它是第一次,後來的消息不會得到發送,或者我得到的服務器錯誤,如:

[BlazeDS] ID爲'my-streaming-amf'端點不能服務流媒體請求作爲提供FlexClient ID'B07F3285-A408-816E-4697-F13F9B17E32C無效,或帶該ID的FlexClient無效。

有時,當我改變子主題時,它將導致FlexSession和FlexClient被銷燬而不僅僅是MessageClient。一旦FlexSession被破壞,它會混淆各種東西,包括註銷用戶。

也許我是通過改變分主題聽取不同的實時數據集來解決複雜的事情,如果任何人有關於如何完成目的地或子主題的動態變化的任何其他想法,請列出這些。

回答

3

在更改子主題和重新訂閱之前,您可能需要嘗試取消訂閱。

+0

是的,它做到了。實際上,我進一步瞭解了消費者和生產者的disconnect(),然後創建了每個實例。現在工作。 – Nick 2009-08-14 18:25:15