Web聊天应用程序 – ASP.NET/Jabber/Ajax/WCF/Comet/ReverseAjax – 面临的问题 – 寻求见解

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

ASP.NET,AJAX

  1. 第一个问题是它不是真正的实时
  2. 如果客户端每x秒(常量时间戳)点击聊天服务器,那么除非x非常小,否则它不会是实时的
  3. 如果x非常小,如1秒,如果同时有1000个在线用户,我认为它真的会破坏聊天服务器并导致可扩展性/性能问题

WCF双工

遗憾的是,我在此尝试构建WCF双工服务时浪费了相当多的时间,该服务维护所有客户端并在需要时通过通道调用客户端。 但我最近了解到 WCF双工回调不适用于ASP.NET(因为http是请求和响应类型)。 我正在关注这篇伟大的文章来构建一个双工服务。

Comet / ReverseAjax / HTTP Server推送

我对这种技术非常陌生,并且想知道它能够扩展得多好。 在我第一次看到这个编程技术在wiki和关于Comet by Alex的第一篇文章后,我了解到客户端始终保持与服务器的开放连接(长期生活ajax调用),服务器可以使用它来推送“在服务器中发生的有趣事件”到浏览器(客户端)。 那么它的规模有多大? 如果IIS中的开放连接的最大数量超过此类或任何其他问题,该怎么办?

Jabber服务器/客户端(XMPP)

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

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

谢谢

NLV

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

我最近刚使用WebSync和jabber-net实现了一个多客户端Jabber Web应用程序。

PokeIn在客户端之间提供共享对象,它只是帮助您创建令人印象深刻的实体和快速Web应用程序。 即使您的应用程序托管在多个服务器上,PokeIn也会管理所有服务器上的共享对象。 因此,此function将帮助您创建非常有效的解决方案。 除此之外,您还可以在那里找到非常有用的样品

我知道这已经过时了,但如果新发现了这个,你应该考虑使用SignalR

开源Jabber服务器

你有没有检查过OpenFire