我有一个服务器多客户端服务器 - 在收到来自客户端的消息后,服务器需要处理它,然后再将其传递给另一个客户端。
我不知道我想做的最好的实现是什么,所以很感激任何帮助。这些消息将按时间间隔发送,因此消息需要被接收、处理并推送到结构中,然后才能在特定时间从要发送的结构中访问。消息有两个属性:目的地和优先级。访问将按时间间隔进行,有两种模式:特定于客户端节点,或向所有节点开放接收。
- 如果时间间隔只允许特定节点接收,那么会发生从最高优先级到最低优先级检查的所有队列,即以最高优先级发送的最早消息将从结构中“推出”。
- 如果时间间隔为“开放”,则无论节点如何,最高优先级的最早消息都将被“推出”。
我首先认为它可能是 a vector<vector<queue<message>>
,但我意识到根据第 2 点进行搜索效率不高。我将不胜感激任何建议!有人建议我使用哈希映射,但我没有这方面的经验,如果这是最好的方法,我将不胜感激。
编辑:将相同的消息推送到两个不同的结构中是更好的解决方案吗?一:按优先级分类,向量持有FIFO队列(每个优先级一个)。二:按节点分类,vector<vector<queue<message>>
.