使用workerman離線消息和消息發(fā)送失敗重發(fā)分別如何實現(xiàn)呢? 判斷是否下線使用isOnline($client_id)嗎? 還有就是心跳檢測機制中 $gateway->pingNotResponseLimit = 4;//客戶端4次無回應(yīng)則斷開 這行代碼無回應(yīng)怎么理解呢?
1、搞個數(shù)據(jù)庫表,每條聊天記錄都有個已讀未讀字段。 2、客戶端每次收到一個消息,回復(fù)一個包給服務(wù)端,服務(wù)端收到后把對應(yīng)記錄置為已讀。 3、當(dāng)客戶端連接上來時,讀取數(shù)據(jù)庫,找到未讀狀態(tài)的消息,發(fā)送給客戶端,然后流程參考2。
$gateway->pingNotResponseLimit = 4;
客戶端連續(xù)4次沒有發(fā)送心跳給服務(wù)端,則認(rèn)為客戶端下線了,斷開連接