throttle peer_status a little bit, send an update every 175ms (similar to the TUI update speed);

pull/72/head
Bryan Biedenkapp 1 year ago
parent b190ce3628
commit cee2995389

@ -158,6 +158,8 @@ int HostWS::run()
peerListUpdate.start(); peerListUpdate.start();
Timer affListUpdate(1000U, 10U); Timer affListUpdate(1000U, 10U);
affListUpdate.start(); affListUpdate.start();
Timer peerStatusUpdate(1000U, 0U, 175U);
peerStatusUpdate.start();
setNetDataEventCallback([=](json::object obj) { netDataEvent(obj); }); setNetDataEventCallback([=](json::object obj) { netDataEvent(obj); });
@ -182,16 +184,21 @@ int HostWS::run()
} }
// update peer status // update peer status
std::map<uint32_t, json::object> peerStatus(getNetwork()->peerStatus.begin(), getNetwork()->peerStatus.end()); peerStatusUpdate.clock(ms);
for (auto entry : peerStatus) { if (peerStatusUpdate.isRunning() && peerStatusUpdate.hasExpired()) {
json::object wsObj = json::object(); peerStatusUpdate.start();
std::string type = "peer_status";
wsObj["type"].set<std::string>(type); std::map<uint32_t, json::object> peerStatus(getNetwork()->peerStatus.begin(), getNetwork()->peerStatus.end());
uint32_t peerId = entry.first; for (auto entry : peerStatus) {
wsObj["peerId"].set<uint32_t>(peerId); json::object wsObj = json::object();
json::object peerStatus = entry.second; std::string type = "peer_status";
wsObj["payload"].set<json::object>(peerStatus); wsObj["type"].set<std::string>(type);
send(wsObj); uint32_t peerId = entry.first;
wsObj["peerId"].set<uint32_t>(peerId);
json::object peerStatus = entry.second;
wsObj["payload"].set<json::object>(peerStatus);
send(wsObj);
}
} }
// update peer list data // update peer list data

Loading…
Cancel
Save

Powered by TurnKey Linux.