简体   繁体   English

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

[英]Web Chat Application - ASP.NET/Jabber/Ajax/WCF/Comet/ReverseAjax - Issues Faced - Seeking Insights

I've been trying to build a web based chat application for the past three weeks and i'm facing issues with whatever route (programming technique/technology) i take to build it. 过去三周我一直在尝试构建一个基于Web的聊天应用程序,我正面临着构建它所采用的任何路径(编程技术/技术)的问题。 I've explained the issues i've experienced with all of'em below. 我已经解释了我在下面的所有问题中遇到的问题。 Kindly provide whatever insights you have in this. 请提供您对此的任何见解。

ASP.NET-AJAX ASP.NET,AJAX

  1. First issue is that it is Not Really Real Time 第一个问题是它不是真正的实时
  2. If client hits the chat server every x seconds (constant time stamp) it is not going to be real time unless x is very very less 如果客户端每x秒(常量时间戳)点击聊天服务器,那么除非x非常小,否则它不会是实时的
  3. If x is very small like 1 second and if there are 1000 users online at the same time i think it is really going to hammer the chat server and cause scalability/performance issues 如果x非常小,如1秒,如果同时有1000个在线用户,我认为它真的会破坏聊天服务器并导致可扩展性/性能问题

WCF-Duplex WCF双工

I unfortunately wasted considerable amount of time in this trying to build a WCF duplex service which maintains all the clients and invokes the client through the channel as and when required. 遗憾的是,我在此尝试构建WCF双工服务时浪费了相当多的时间,该服务维护所有客户端并在需要时通过通道调用客户端。 But i recently learnt that WCF duplex callback wont work with ASP.NET (since http is request and respond type). 但我最近了解到 WCF双工回调不适用于ASP.NET(因为http是请求和响应类型)。 I was following this great article to build a duplex service. 我正在关注这篇伟大的文章来构建一个双工服务。

Comet/ReverseAjax/HTTP Server Push Comet / ReverseAjax / HTTP Server推送

I'm extremely new to this technique and wonder how well enough it can scale. 我对这种技术非常陌生,并且想知道它能够扩展得多好。 After my first glance on this programming technique here in wiki and the very first article on Comet by Alex here , i learned that the client always maintains an open connection (long living ajax calls) to the server which can be used by the server to push "interesting events happening in the server" to the browser (client). 我对这个编程技术在这里第一眼后在维基和彗星由Alex第一篇文章在这里 ,我才知道,客户始终保持其可以被服务器用来推动一个开放的连接(长住AJAX调用)服务器“在服务器中发生的有趣事件”到浏览器(客户端)。 So how well can it scale? 那么它的规模有多大? What if the max no of open connections exceed in IIS or any other issues like that? 如果IIS中的开放连接的最大数量超过此类或任何其他问题,该怎么办?

Jabber Server/Client (XMPP) Jabber服务器/客户端(XMPP)

I see that most of the prominent chat applications that can be seen online are making use of Jabber. 我看到大多数可以在网上看到的着名聊天应用程序都在使用Jabber。 I also learned that writing a Jabber server from the scratch is a tedious task. 我还了解到从头开始编写Jabber服务器是一项繁琐的工作。 I have separate user profile store for by application. 我有应用程序的单独的用户配置文件存储。 Can i integrate that with Jabber easily? 我可以轻松地将它与Jabber集成吗? Any open source Jabber servers that i can host privately? 我可以私下托管的任何开源Jabber服务器? (I've seen many open source tools to build the client easily) (我见过很多开源工具来轻松构建客户端)

Any insights provided are very much appreciated. 提供的任何见解都非常感谢。

Thank you 谢谢

NLV NLV

If you are using .NET, check out WebSync . 如果您使用的是.NET,请查看WebSync It allows for fully scalable comet using IIS to integrate directly with your application. 它允许使用IIS完全可扩展的彗星直接与您的应用程序集成。 There is a free Community edition you can try out, along with tons of examples and chat demos. 您可以尝试免费的社区版,以及大量的示例和聊天演示。

I just recently implemented a multi-client Jabber web-app using WebSync and jabber-net . 我最近刚使用WebSyncjabber-net实现了一个多客户端Jabber Web应用程序。

PokeIn provides shared objects among the clients and it simply helps you to create impressively solid and fast web applications. PokeIn在客户端之间提供共享对象,它只是帮助您创建令人印象深刻的实体和快速Web应用程序。 Even if your application is hosted on multiple servers, PokeIn manages the shared objects on all of them. 即使您的应用程序托管在多个服务器上,PokeIn也会管理所有服务器上的共享对象。 So, this feature will help you to create quite effective solutions. 因此,此功能将帮助您创建非常有效的解决方案。 In addition to these, you will find very useful samples over there 除此之外,您还可以在那里找到非常有用的样品

我知道这已经过时了,但如果有新的创新,你应该考虑使用SignalR

Open Source Jabber Server 开源Jabber服务器

Have you checked out OpenFire 你有没有检查过OpenFire

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM