所以基本上我想编写一个能够向所有节点发送文本消息的 P2P 软件,有点像 IRC。建议我使用什么样的网络?我已经研究了一些 DHT Kademlia,它似乎很容易实现,但它似乎对我想做的事情没有用?例如,Skype 使用什么样的协议?
编辑:我忘了说,它不一定是即时消息,几分钟的延迟是可以接受的。我不认为我可以不断尝试每五分钟或在所有节点上获取与当前时间相对应的数据吗?
建议我使用什么样的网络?
如果您可以选择 Java,那么您应该研究JXTA和传播的消息。
我已经研究了一些 DHT Kademlia,它似乎很容易实现,但它似乎对我想做的事情没有用?
DHT 会告诉您您的信息在哪里(即哪个节点),但不会告诉您如何访问和传输它。后一个问题非常技术性,涉及 NAT 遍历和 TURN 或 STUNT P2P 实现。
你说“所有节点”。
如果你想要广播功能,我建议使用 Freepastry。看看这里的抄写员教程。https://trac.freepastry.org/wiki/tut_scribe
我使用免费糕点作为文件共享应用程序,并进行了相当多的性能测试。它非常容易实现并且非常可靠。根据我的经验,效果很好。