-1

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

要求:

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

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

4

2 回答 2

1

呃,如果你真的想为聊天应用程序做无服务器架构,你需要仔细评估你想要提供什么样的功能。比如,你只想要一对一聊天,群聊,状态通知,用户认证怎么样?有很多方法可以解决这个问题,但我个人总是喜欢基于服务器的解决方案。

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

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

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

如果我有您的要求,我会得到类似http://www.coversant.net/Product/SoapBoxServer.aspx的东西(他们有免费的特快版,一切都内置在 .NET 中,提供 .NET API 等)或获取任何其他 XMPP 服务器(这里有一对:http: //xmpp.org/software/servers.shtml),带有 .NET API,如http://code.google.com/p/jabber-net/

于 2009-09-30T05:49:19.967 回答
0

我不确定无服务器,因为我托管了 OpenFire jabber 服务器,但是这个Jabber.NET库对我来说效果很好。

于 2009-10-08T10:18:49.097 回答