.net 实时无服务器聊天应用程序的最佳协议\技术

.net 实时无服务器聊天应用程序的最佳协议\技术,.net,communication,chat,xmpp,.net,Communication,Chat,Xmpp,我需要将聊天功能嵌入.NET应用程序(Windows客户端应用程序) 要求: 最好是无服务器/零配置架构(p2p),但不是必需的 基于开放标准(类似于XMPP) NET的实现(库)(本机C/C++也可以)存在 你能推荐什么?目前我在看XMPP/Jabber,你有在应用程序中使用它的经验吗?uhh,如果你真的想为聊天应用程序提供无服务器架构,你需要仔细评估你想要提供什么样的功能。 例如,您是否只想要一对一的聊天,群组聊天、状态通知如何,用户身份验证如何? 有很多方法可以做到这一点,但就我个人而

我需要将聊天功能嵌入.NET应用程序(Windows客户端应用程序)

要求:

  • 最好是无服务器/零配置架构(p2p),但不是必需的
  • 基于开放标准(类似于XMPP)
  • NET的实现(库)(本机C/C++也可以)存在

你能推荐什么?目前我在看XMPP/Jabber,你有在应用程序中使用它的经验吗?

uhh,如果你真的想为聊天应用程序提供无服务器架构,你需要仔细评估你想要提供什么样的功能。 例如,您是否只想要一对一的聊天,群组聊天、状态通知如何,用户身份验证如何? 有很多方法可以做到这一点,但就我个人而言,我始终倾向于使用基于服务器的解决方案

无论如何,最基本的解决方案是使用UDP多播,每个客户端都是发送方和接收方。UDP不可靠,因此发送方应该缓存消息,应用程序级协议应该能够检测间隙,能够请求间隙填充数据并按顺序排列传入数据。在这种情况下,基本上每个人都会看到每个人的消息(这可以通过应用程序级协议进行过滤)

下一个最好的解决方案是每个客户端发送多播信标(通知),如果客户端有兴趣与某个发送方发起对话,它将查看信标,该信标应包含有关发送方的信息,包括IP地址和端口。然后,感兴趣的一方将建立到信标发送方的TCP连接,这两方现在可以开始通过有保证且有序的消息传递直接彼此聊天

我现在可以继续使用更高级的消息传递体系结构/协议,但我认为这没有意义


如果我有你的要求,我会得到类似的东西(他们有一个免费的快速版,所有东西都内置在.NET中,.NET API提供,等等),或者得到任何其他带有.NET API的XMPP服务器(这里有两个:),比如

,我不确定serverless,因为我托管了OpenFire jabber服务器,但是这个库对我来说运行得很好。

jabber并不是没有服务器的。无服务器架构的问题是它不通过两个防火墙(每个客户端都在防火墙后面),客户端无法找到彼此(没有共同的“大厅”或服务器)@reinier,请参阅XEP-0174:serverlessMessaging@Tom,谢谢您的反馈。我知道这些东西是怎么工作的。我只想从有上述协议\技术经验的人那里得到反馈。我的第一个目标是简单——理想情况下,客户端不应该进行任何设置。第二个目标是可靠性,若服务器宕机,我希望我的客户继续交谈。XMPP似乎是最好的选择。我现在正在评估现有的XMPP实现。