這裏的鏈接到應用程序...如何設計像Viber這樣的網絡質量指標?
http://www.gadgetlite.com/2011/01/25/viber-app-hits-version-1-1-network/
我環顧四周,大多建議私有API或networkactivityindicator(這是不是有什麼即時尋找)
將不勝感激關於如何啓動
這裏的鏈接到應用程序...如何設計像Viber這樣的網絡質量指標?
http://www.gadgetlite.com/2011/01/25/viber-app-hits-version-1-1-network/
我環顧四周,大多建議私有API或networkactivityindicator(這是不是有什麼即時尋找)
將不勝感激關於如何啓動
Viber應用程序的網絡質量是指數據連接。
在NSURLConnectionDataDelegate的connection:didReceiveResponse:
處設置開始時間,然後發送一些內容並對connection:didReceiveData:
處的字節進行計數。在connectionDidFinishLoading:
設置完成時間,計算時間間隔並將其與您的任意閾值進行匹配。
我感覺默認的iOS框架會有這些信息(請看iOS中的網絡庫)。如果沒有,您可以查看ping時間(在後臺ping一個URL並查看延遲量,確保您使用的服務器始終可用並且速度很快,ping google.com也許?)
因此,我環顧四周,閱讀了Ege Akpinar之前給出的非常有用的答案,並且偶然發現了這篇文章。他們使用蘋果自己的類,它可以在Mac OSX和iOS中使用:
蘋果的樣品鏈接,可通過上面的鏈接,但效率和速度的緣故,這裏是它的直接鏈接:
我還發現另一個帖子裏介紹瞭如何使用斯威夫特實現類。我想我可能有它,如果你使用的是斯威夫特:
Using Simple Ping in swift (iOS)
我希望這會有些用處。
我真的很喜歡這個答案,我腦海裏唯一的問題是檢查ping是否會使用大量資源。你有這樣做的最佳方式?否則一個好主意! – Septronic
不是,你已經在做VoIP了,發送頻率很高的語音包。因此,每秒鐘ping一次都不會有太大的變化。我需要補充說明ping Google的想法是錯誤的,您希望顯示與您的服務器的連接,以便您能夠Ping自己的服務並將響應時間與預期進行比較。 –
稍微輕一點的方法可能是保持連接打開並接收連續數據(服務器必須能夠發送數據流,例如每秒鐘1個字節)。這會更輕,因爲它每次都會節省創建一個新數據包,這會產生開銷(數據包標題,打開新連接,握手等) –