mirror of
https://github.com/overte-org/overte.git
synced 2025-08-06 12:09:52 +02:00
Add iterator to improve max messages check performance.
This commit is contained in:
parent
9d15b00fbb
commit
008c0f0b1e
1 changed files with 8 additions and 6 deletions
|
@ -49,13 +49,15 @@ void MessagesMixer::handleMessages(QSharedPointer<ReceivedMessage> receivedMessa
|
||||||
MessagesClient::decodeMessagesPacket(receivedMessage, channel, isText, message, data, senderID);
|
MessagesClient::decodeMessagesPacket(receivedMessage, channel, isText, message, data, senderID);
|
||||||
|
|
||||||
auto nodeList = DependencyManager::get<NodeList>();
|
auto nodeList = DependencyManager::get<NodeList>();
|
||||||
if (_allSubscribers.value(senderUUID) >= _maxMessagesPerSecond) {
|
|
||||||
// We will reject all messages that go over this limit for that second.
|
|
||||||
// FIXME: We will add logging options to offer analytics on this later.
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_allSubscribers[senderUUID] += 1;
|
auto itr = _allSubscribers.find(senderUUID);
|
||||||
|
if (itr == _allSubscribers.end()) {
|
||||||
|
_allSubscribers[senderUUID] = 1;
|
||||||
|
} else if (*itr >= _maxMessagesPerSecond) { // this syntax might be wrong I forget
|
||||||
|
return;
|
||||||
|
} else {
|
||||||
|
*itr += 1;
|
||||||
|
}
|
||||||
|
|
||||||
nodeList->eachMatchingNode(
|
nodeList->eachMatchingNode(
|
||||||
[&](const SharedNodePointer& node)->bool {
|
[&](const SharedNodePointer& node)->bool {
|
||||||
|
|
Loading…
Reference in a new issue