我使用workerman做了一個聊天室。
1.
我之前使用ajax輪詢做的聊天室,在訪問量大的情況下會掛掉。
我想知道workerman對于長輪詢、短輪詢來說,是否能有效減輕服務器壓力?
2.
有一篇文章,我想直接推送所有內(nèi)容(標題、時間、內(nèi)容等),這樣就不用去存儲介質(zhì)中讀取數(shù)據(jù)了,節(jié)省了一次HTTP請求??墒沁@樣會不會造成丟包現(xiàn)象或某個用戶收不到的情況??
還是說僅僅推送一個文章id,用戶收到文章id后去數(shù)據(jù)庫讀取顯示比較穩(wěn)妥些?
1、如果用workerman的話,建議直接長鏈接,就不用輪詢了,單臺服務器可支持10萬在線(實際項目),性能是輪詢無法比的
2、只要socket鏈接連著,并且網(wǎng)絡沒問題就可以收到推送。即使失敗,也可以在刷新頁面時判斷下數(shù)據(jù)庫是否有未讀的消息。任何一個產(chǎn)品都無法保證消息都能100%到達,因為每個客戶的客戶端和網(wǎng)絡環(huán)境都不一樣。
建議只推送文章id,內(nèi)容可能會很大,如果瞬間推送很多用戶會占用很大的帶寬,比如1W在線,文章10k,那瞬間就是1W_10k_8bit = 800M的帶寬。
謝謝大哥了!
1.請問使用長連接是workerman默認的嗎?還是得設置一下?
2.我看文檔里有這么個功能:如果用戶收到消息后,返回一個狀態(tài),說明已經(jīng)收到,如果沒返回狀態(tài)說明沒收到,則重新發(fā)送。請問這個功能workerman自動開啟了嗎?
請問是否有這方面的實例?
我是小白,許多東西都不了解,煩擾大哥了!見諒!