我正在使用C ++开发游戏的服务器端,多个服务器需要使用Publisher / Subscriber模式相互通信。每个服务器都订阅不同服务器上的某些事件。所有服务器都位于同一网络上,因此延迟和数据包丢失应该非常低。服务器间通信应该尽可能高效,因为每秒都会发生很多事件。
我可以用于此目的吗?
非常感谢任何帮助
答案 0 :(得分:1)
您实际上是在谈论套接字库。这与IPC不同,后者指的是相同计算机上的两个或多个进程之间的进程间通信 - 而不是通过网络。网络通信需要套接字编程,因此您可能需要一个良好的高性能套接字库。 Boost.ASIO是一个非常好的C ++可移植套接字库,它提供TCP和UDP套接字。
答案 1 :(得分:1)
您应该能够将Boost.ASIO(对于异步套接字I / O)与Boost.Signals(对于Observer模式)或Boost.Signals2(线程安全版本的Boost.Signals)组合以实现你想要的。
有一个简单的示例显示了这可能如何工作here。请注意,这在Boost.Signal上使用了一个包装器,但是你明白了。