我正在通过聊天示例应用程序学习boost :: asio。在该示例中,它向所有参与者发送消息。我想在其中添加一个私人聊天功能(使用服务器作为中继的私人聊天)。
为了简单起见,我们假设我们只有两个客户,A和B. To 我的想法是,如果我将A和B的套接字连接到地图中。之后,如果A想要与B交谈,我搜索A的套接字的地图(从而找到B的套接字),然后将消息发送到B的套接字。
然而,这似乎是一项相当困难的任务。有办法吗?
答案 0 :(得分:1)
当然可以。
如果您正在查看c ++ 11示例,那么您可以执行以下操作:
chat_server.cpp
register_client
中添加chat_client.cpp
功能,该功能会向每个客户端注册一个ID。更改chat_room::deliver
for (auto participant: participants_) {
if(participant->id == recipient_id)
participant->deliver(msg);
}
以上只是为了让您大致了解如何执行此操作。
希望这是有道理的。