我想编写一个发布者/订阅者分布式应用程序,其中每个节点可以同时发布和订阅数据(按主题)。为简单起见,假设有一个阶段,发布者/订阅者首先向中央服务器报告他们想要发布/订阅的内容。当这完成时,服务器将信息发送给订阅者,他们应该连接到那里以接收发布(按主题)。因为节点可以发布和订阅,所以节点A可以连接到另一个节点B进行订阅,然后节点B也可以连接到节点A,因为它想订阅节点A发布的一些数据。这是一个循环的“依赖”。
我现在遇到的问题是,我确实希望只保留一个套接字用于两侧的这两个节点的通信,两者都用于发布数据和接收数据,因为套接字已经是一个双向结构。假设两个节点都有一个侦听端口的套接字侦听器。两个节点同时相互连接,哪个连接将被接受,哪个连接被丢弃?什么协议适合这个问题?
谢谢!