那麼最好的辦法,我已經減少了我的問題如下:的WebSocket - 太空,服務器響應
我有一個node.js
服務器在2秒的間隔發送到我的WebSocket
客戶端(瀏覽器)的響應。客戶機代碼來接收響應如下:
socket.onmessage = function (message) {
//display message
}
在大多數情況下,我可以在客戶端上的至少2秒收到響應。但是,有時由於網絡連接不良或服務器負載過高,我可能會收到來自服務器的突發響應。例如,而不是2s中的一個響應,我在6s中立即得到3個響應。
我該如何處理客戶的情況,以便保留至少2秒的延遲?
一個選項是將客戶端中的所有響應排隊,然後有一個定期檢查隊列的計時器。有沒有更好的辦法?
也是函數onmessage
線程安全?也就是說,在代碼塊執行時,服務器端的新響應是否會被阻止?
客戶端更新服務器的每個響應的UI。用戶在短時間內看到變化很重要。 – Kamil
我會推薦使用一個函數,如http://stackoverflow.com/questions/23072815/throttle-javascript-function-calls-but-with-queuing-dont-discard-calls,它允許一個函數是排隊和速度有限。但是,如果使用這種方法,請確保使延遲略低於服務器,以便能夠趕上 –