2012-03-20 74 views
0

我有一個mxml文件,通過HTTPService.send()調用在我的http服務器上啓動腳本。Flex HTTPService.disconnect()它應該做什麼?

由於服務器端的腳本需要一個LOOOONG時間(可能需要一個多小時),我想在單擊按鈕時斷開我的應用程序和服務器之間的連接。

不知道爲什麼,但調用HTTPService.disconnect()是完全沒用的......沒有tcp連接丟失,腳本一直在服務器端運行。

沒有HTTPService.cancel()也沒有將HTTPService var設置爲null工作。

如何刪除連接?

在此先感謝

+0

我會期望disconnect()放棄連接。你說這不是;你怎麼知道?我不希望它對服務器端腳本有任何影響。 – JeffryHouser 2012-03-20 14:51:34

回答

0

我不知道你期望基於看着兩個方法你指的是無論是文檔,發生何事,說會關閉TCP連接,實際上是相反的,他們說他們不等待或相對於TCP連接做任何事情:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/mx/rpc/http/HTTPService.html

cancel()

  • 取消上次服務調用或具有指定ID的調用。即使網絡操作仍可能繼續,但不會發出任何結果或故障事件(< - 這就是它所做的事情,停止發送結果或故障事件)。

disconnect()

  • 斷開此服務的網絡連接。此方法不會等待未完成的網絡操作完成(並未聲明它會停止現有網絡操作,只會斷開此服務網絡連接)。

您可以通過源挖得到什麼回事的更具體的想法,但基本上爲文檔指出它只是去除它是本地存儲派遣了具有「積極」電話事件列表中的電話聽衆。從本質上講,Flex無法知道它正在處理什麼樣的服務/服務器,並且適當地向服務器發出信號以取消當前正在執行的任何操作。您可以在服務器上編寫另一個服務器,專門用於關閉另一個進程,因此您可以調用HTTPService上的cancel,然後向服務器發送另一個請求,該請求執行您的kill流程腳本(關閉打開的套接字,停止任何如果需要的話,可以終止操作,殺死或重新啓動服務),但是如果不知道服務器端要處理的事情是什麼,就不可能完全自動化。想象一下,如果有一個開放的網關通過客戶端代碼取消服務器上的操作,這對我來說聽起來很危險。

相關問題