c# - 网络聊天应用程序 - ASP.NET/Jabber/Ajax/WCF/Comet/ReverseAjax - 面临的问题 - 寻求见解

标签 c# asp.net wcf chat comet

在过去的三周里,我一直在尝试构建一个基于 Web 的聊天应用程序,但无论采用何种途径(编程技术/技术)构建它,我都面临着问题。我已经在下面解释了我遇到的所有问题。请提供您对此的任何见解。

ASP.NET-AJAX

  1. 第一个问题是它不是真正实时的
  2. 如果客户端每 x 秒(恒定时间戳)访问一次聊天服务器,它将不是实时的,除非 x 非常非常小
  3. 如果 x 非常小,比如 1 秒,并且如果同时有 1000 个用户在线,我认为它真的会破坏聊天服务器并导致可伸缩性/性能问题

WCF 双工

不幸的是,我在尝试构建一个 WCF 双工服务时浪费了大量时间,该服务维护所有客户端并在需要时通过 channel 调用客户端。但是我最近learnt WCF 双工回调不适用于 ASP.NET(因为 http 是请求和响应类型)。我在关注 this great article构建双工服务。

Comet/ReverseAjax/HTTP 服务器推送

我对这项技术非常陌生,想知道它的扩展性如何。在我第一眼看到这里的编程技术之后 in wiki和亚历克斯关于 cometd 的第一篇文章here ,我了解到客户端始终保持与服务器的开放连接(长期 ajax 调用),服务器可以使用该连接将“服务器中发生的有趣事件”推送到浏览器(客户端)。那么它的扩展性如何?如果 IIS 中打开的连接数超过最大值或任何其他类似问题怎么办?

Jabber 服务器/客户端 (XMPP)

我看到大多数可以在网上看到的著名聊天应用程序都在使用 Jabber。我还了解到,从头开始编写 Jabber 服务器是一项乏味的任务。我有单独的应用程序用户配置文件存储。我可以轻松地将它与 Jabber 集成吗?我可以私下托管任何开源 Jabber 服务器吗? (我见过很多开源工具可以轻松构建客户端)

非常感谢您提供的任何见解。

谢谢

NLV

最佳答案

如果您使用的是 .NET,请查看 WebSync .它允许完全可扩展的 Comet 使用 IIS 直接与您的应用程序集成。您可以试用免费的社区版,以及大量示例和聊天演示。

我最近使用 WebSync 实现了一个多客户端 Jabber 网络应用程序和 jabber-net .

关于c# - 网络聊天应用程序 - ASP.NET/Jabber/Ajax/WCF/Comet/ReverseAjax - 面临的问题 - 寻求见解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3226688/

相关文章:

javascript - 在 jQuery UI Datepicker 和 asp.net 日历上禁用自定义日期

javascript - 使用Ext.js从WCF获取数据 "Network Error 400 Bad Request"

c# - 无法在计算机 'ip address' 上打开服务控制管理器。此操作可能需要其他权限

c# - TreeView 不执行 UI 虚拟化

c# - 解析动态枚举

c# - ASP.NET 母版页的动态变化

c# - 如何在不创建 ViewModel 对象的情况下指定 DataContext (ViewModel) 类型以在 XAML 编辑器中进行设计时绑定(bind)检查?

asp.net - 如何检索从 aspx 页面动态生成的 HTML?

c# - OutOfMemoryException - WCF 服务

c# - WCF FlatWSDL - 如果您的主机是 IIS,您将必要的代码贴在哪里?