2012-06-28 76 views
2

我使用Socket.io與Node.js並有一個每秒發出消息的進程。基本上,我有一個時間間隔,看起來像這樣:Socket.io setInterval不準確

setInterval(function(){ 
socket.emit('message', msg); 
}, 1000); 

當我只使用xhr輪詢,輪詢是相當零星的。有時它會相當準確地進行輪詢,大約在1.0s或1.01s或999ms。然後其他時間,它會像200毫秒或1.5毫秒等。

我已經刪除了所有可能導致服務器延遲,只是發出靜態數據,它仍然是零星的邏輯。

有更好的方法來處理這個會更準確的任何想法?

謝謝!

+0

如果你運行它10秒,它總是相同的模式? – c0deNinja

+0

我想知道它是否與你的xhr塊大小有關 – EhevuTov

回答

0

我已經使用Socket.io構建了幾款遊戲,並且在服務器上以每秒30幀的速度運行,並將信息更新推送給所有客戶端。 我記得有一個客戶端不支持套接字的問題(回退到閃存) - 似乎從客戶端發送的數據幾乎是立即發送,但從服務器發送的數據將如您所描述的(零星的)。