請教個關(guān)于心跳的問題
1.GatewayWorker 文檔中 技巧1,服務(wù)端不發(fā)送任何心跳數(shù)據(jù),
通過 客戶端主動發(fā)送的數(shù)據(jù)判斷客戶端是否存活,
如果是通過瀏覽器的websocket鏈接的,那是不是 要通過 js
通過 ws.send(xxxxx); 定時向service端 發(fā)送任意心跳數(shù)據(jù)呢,如果是定時發(fā)送任意心跳數(shù)據(jù),
這樣會不會 心跳數(shù)據(jù) 跟 正常的業(yè)務(wù)數(shù)據(jù) 混淆呢,這樣的話,是不是需要在service端的onMessage()
中 區(qū)分 心跳數(shù)據(jù) 與 業(yè)務(wù)數(shù)據(jù),而這個通過Js的定時,這個時間間隔 是隨意設(shè)定的嗎?
2.根據(jù)文檔來看,貌似 最好采用技巧2的方式,即 $gateway->pingNotResponseLimit = 2;
這樣service端能及時的知曉客戶端的鏈接情況,能這樣理解嗎?
客戶端的主動心跳包肯定要在onMessage中做邏輯處理,
我目前采用的方式是通過客戶端與服務(wù)器約定的協(xié)議,例如所有發(fā)給Gateway的消息都必須帶上action這個參數(shù),例如action:ping,在onMessage中做swtich處理;