2010-01-25 199 views
3

我目前正在使用一個預先存在的服務/標準的Flash套接字客戶端。該服務使用TCP流量控制來限制自身,儘管無法像處理它一樣快速地處理它,但Flash套接字正在儘可能快地讀取所有內容。這會導致套接字上的bytesAvailable不斷增加,並且服務器從來不知道客戶落後了。TCP中的流量控制?

總之,是否有任何方法來限制字節的大小可用於Flash Socket對象或以其他方式加以限制?

注:重寫服務器是不是因爲它是一個標準,如果需要服務器端更改

+0

我不想爲你做,以防萬一。你可能想重新標記flex3只是flex,我認爲有更多的人監視該標籤 – invertedSpear 2010-01-29 16:14:04

+0

謝謝,良好的電話 – 2010-01-29 20:15:30

回答

2

經過研究,我發現當CPU在系統上最大化時(可能是由於資源用盡/響應時間太慢),Actionscript Socket類將開始調節。

這實際上解決了我的問題,因爲我已經編寫了代碼,以便在應用程序「需要」的每秒多少幀數和套接字中有多少個字節可用之間達到平衡。如果bytesAvailable太高,則應用程序將不停地處理並將CPU驅動至100%,最終導致套接字減速。

0

我不認爲這是客戶端的效用極大降低當前時間的可行的選擇可能。 AS3中沒有低級別的API,可以使用TCP級別的字節進行操作。但是你可以在更高的水平上實現節流。 例如:在將字節放入Socket的byteArray之前,請檢查您在最近幾秒鐘內放置了多少個數據。如果此值太高 - 推遲操作。

+0

不幸的是,由於實施限制,我無法觸摸服務器部分。我試圖避免使用某種類型的中繼/代理服務器,但它看起來不可避免。 – 2010-01-29 20:16:26