2017-05-30 28 views
0

我想開發在php,sql和ajax聊天系統。我創建了一個函數,通過ajax從窗口上傳時獲取數據庫的這個函數的事件,所以如果我在瀏覽器中打開2個窗口來測試應用程序,我發現了消息,當我發送消息時,它只出現在窗口兩個窗戶。爲了解決這個問題,我每隔1秒就使用setInterval函數來顯示消息。 做這個巨大的請求損壞服務器?如果我使用setInterval從數據庫請求數據,可能會損壞服務器嗎?

+1

簡短回答:否 – R3tep

+0

因此,如果有數千個聊天會話打開,我如何在不同的窗口中顯示消息? –

+0

我覺得'setInterval'或'setTimeout'是唯一的方法。 – R3tep

回答

3

我不太清楚你的意思是什麼「傷害」,但沒有什麼可以通過一些額外的請求真正損壞。

如果您想知道網絡服務器是否可以處理負載,這實際上取決於同時進行多少個聊天會話。任何體面的Web服務器應該能夠處理大於每秒兩個請求。如果您有數千個聊天會話打開,或者您的代碼非常密集,那麼您可能會注意到問題。

更大的問題可能是您的網絡延遲。如果您的網絡與服務器進行往返通信需要一秒以上的時間,那麼您可能會同時收到來自同一客戶端的多個請求。

+0

旁註:關於「破壞性」的擔心將在其他方面,如過濾消息中可能的入侵代碼,並設置一些限制以避免氾濫(例如機器人) – Kaddath

+0

成千上萬的聊天會話打開,我如何在不同的窗口中顯示消息? –

+0

對不起,我的意思是由於同一秒內太多請求而導致服務器停止的損壞 –