2012-01-09 87 views
0

我剛在iOS Safari(iOS 5.0.1)上發現了一個非常煩人的事情。以非常接近的間隔發送兩條消息時(例如,30-40ms,例如,在按鈕上發送消息,在鼠標上發送消息),兩條消息以200到300毫秒的間隔到達服務器。 這使得在iOS上使用WebSockets真的很痛苦,例如製作一個遙控器......iOS Safari WebSockets:短時間間隔發送郵件時的巨大延遲

我很害怕我知道答案,但是有無論如何使它工作更好?它似乎是Safari的Websockets實現中的一個錯誤,但是它也可能來自WiFi實現(我幾乎不這麼認爲......)?

+0

我不認爲我已經看到這與舊iPhone 3G上的4.X。如果蘋果決定擱置他們的WebSocket實現,那真是令人失望。 – kanaka 2012-01-09 20:34:42

回答

2

我剛剛發現了某種解決方法,並且Safari Mobile的websockets實現的行爲甚至比我已經發現的更爲怪異。

在做一些ping測試來驗證我的理論時,我意識到我沒有這個問題了。然後我再次用我的原始代碼進行測試,並再次遇到同樣的問題。

然後我意識到我的代碼與ping測試相比發生了什麼變化:服務器從不向客戶端發送任何內容。所以,只要我的服務器收到來自iPhone的消息,他就會發送一條消息給它。這樣,延遲就消失了。這真的很奇怪,有可能需要做的事情來解決這個問題,但在此期間,這將做...

+0

這表明nagle's沒有被禁用。在研究如何在iOS瀏覽器上禁用它時發現這篇文章(同樣發生在Chrome上)。出於某種原因,我似乎無法做到這一點。 – Lof 2017-03-06 10:27:01