标签: comet

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推送

我对这种技术非常陌生,并且想知道它能够扩展得多好.我对这个编程技术在这里第一眼后在维基和彗星由Alex第一篇文章在这里,我才知道,客户始终保持其可以被服务器用来推动一个开放的连接(长住AJAX调用)服务器"在服务器中发生的有趣事件"到浏览器(客户端).那么它的规模有多大?如果IIS中的开放连接的最大数量超过此类或任何其他问题,该怎么办?

Jabber服务器/客户端(XMPP)

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

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

谢谢

NLV

c# asp.net wcf chat comet

5
推荐指数
1
解决办法
9884
查看次数

如何制作一个不断更新的页面?

我正在尝试在我的网站上创建一个页面,实时显示新上传的项目。

我认为每 3 秒调用一次Ajax 脚本将是解决此问题的最佳方法,但是我的网站并没有经常获得新上传的项目。它也是如此多变,在 30 秒到 1 小时之间!

此外,每 3 秒调用一次脚本对我的服务器来说是相当费力的,尤其是当很多人都在同一页面上时。

我一直在寻找类似 PHP 推送通知的东西。虽然这看起来很牵强,但我正在寻找一些东西,当有人将某些内容上传到网站时,上传脚本会告诉提要页面进行更新。

我看到了一个叫做 COMET 的东西——虽然阅读文章/教程让我更加困惑。

那么,实现不断更新页面的最佳方法是什么?

javascript php ajax comet

5
推荐指数
1
解决办法
4145
查看次数

在Django中用于彗星的库是什么?

我打算在Django中编写一个彗星应用程序,但据我所知,关于这个主题的文章很少,而且可用的彗星库不一定适合与Django一起使用(特别是开发环境).

到目前为止,我见过的最好的选项(有一篇关于如何在Django中开始的文章)是APE和Orbited.然而,Orbited似乎仍然没有被积极开发(easy_install甚至不起作用,域名已经过期),APE应该可以正常工作,但是如何使用它python manage.py runserver

所以我的问题是 - 如果你在Django中编写一个彗星应用程序,最常用的库是什么?

django comet

5
推荐指数
1
解决办法
574
查看次数

如何扩展gevent-socketio服务器?

我打算用gevent-socketio建立一个实时服务(由Jeffrey Gelens发布).出于某些目的,我需要使用许多gevent-socketio服务器来扩展我的服务.我认为它可以用作反向代理(如nginx),用于跨多个Comet服务器分发请求,并使用另一台服务器作为中央会话数据存储,是不是?

我正在尝试修改gevent-socketio源代码,但这对我来说相当困难.

python comet real-time gevent socket.io

5
推荐指数
1
解决办法
1062
查看次数

JBoss Errai,我应该用它替换所有GWT-RPC客户端调用吗?

如果我有JBoss Errai(我为了服务器推送而下载),使用GWT-RPC进行客户端调用还有什么好处吗?或者如果我只是使用Errai调用一切,客户端和服务器端,我会失去什么?它可以发送所有相同的数据类型,并且它也可以像GWT-RPC一样用于客户端发起的调用吗?

jboss push comet gwt-rpc errai

5
推荐指数
1
解决办法
553
查看次数

服务器客户端通信:长轮询,彗星和服务器发送事件(SSE)

我正在开发一个连接到服务器的Web应用程序,我需要服务器在给定时间将一些信息提供给客户端.

因此,我开始阅读有关服务器发送事件(SSE)的信息,因为该网站是在HTML5上开发的,而SSE似乎非常符合我的要求.但是,当我读到SSE真正在做的事情是将客户端的请求发送到服务器而不是相反的方式时,我感到非常惊讶(昨天我认为我理解长轮询是一种推送仿真).因此,我开始阅读有关Web套接字的内容(但它标注了该标准仍然是草案)并且还看了一下Comet.但我认为我不能完全理解我的想法.

有人会突出显示适合我的问题的这些技术(也许还有其他一些技术),哪种情况更适合每一种?

非常感谢,我想我完全迷失在这个领域.

html5 comet server-side long-polling

5
推荐指数
1
解决办法
1777
查看次数

AsyncContext 和 I/O 错误处理(当对等断开连接时)

我正在使用 Servlet 3.0 的javax.servlet.AsyncContext接口实现服务器发送的事件。

但是,我无法理解我应该如何处理对等断开连接等 I/O 错误。

对于给定的AsyncContext ac = request.startAsync(),我可以调用ac.getResponse().getWriter().print(something)然后ac.getResponse.getWriter().flush()它工作正常。但是,当客户端断开连接时,我不会收到错误消息——即使我附加了一个侦听器,onError也不会调用它的方法。

我用 Jetty 8 和 Tomcat 7 对它进行了测试,似乎与客户端的断开连接没有报告给应用程序。

如何检测通信错误?

tomcat comet jetty servlet-3.0 jakarta-ee

5
推荐指数
1
解决办法
1652
查看次数

实现推送通知系统的最佳方式

我们希望建立一个实时价格变动系统,以便能够看到竞争对手价格与产品价格的差异.

我们没有使用Javascript和PHP的推送通知/ COMET系统的经验.如果你不介意,我想得到你的经验,对这种技术的建议.所以这是我的问题:

  • 这个系统的最佳方式是什么?
  • 我们是经验丰富的PHP开发人员,因此PHP适合这项任务吗?
  • 如果你知道任何能够做到这一点的项目或解决方案(开源或商业),请你分享一下吗?

javascript php push comet

5
推荐指数
1
解决办法
1304
查看次数

Forever Frame彗星技术?

有人可以解释一下“Forever Frame”技术是如何工作的吗?一个代码示例会很棒!我浏览了可以在 Google 上找到的所有材料,但我仍然不太了解它是如何工作的。

comet real-time

5
推荐指数
1
解决办法
2403
查看次数

Comet 流媒体:XHR 流媒体和 Forever iFrame 在 2015 年仍有可能吗?

我知道我可能应该使用 WebSockets 或服务器端事件,但是涉及将分块数据从服务器写入iFrame或作为对 的响应的 Comet Streaming 技术发生了xmlHttpRequest什么?我偶然发现了多个演示,但它们都不再按预期工作,而且由于这种类型的流媒体上的大部分材料都很旧,我想知道它在 2015 年是否仍然可行?

为了清楚起见,我指的是 Comet 技术,其中服务器使用分块传输编码即时刷新新数据来保持连接打开。浏览器中的增量渲染应该可以使这些数据可用,无论是在iFrame(例如“Forever iFrame”)的情况下还是通过在返回时读取对象的responseText属性(例如“XHR流”)。然而,所有浏览器似乎都会缓冲数据直到连接关闭,无论我在开始发送真实数据之前添加了多少虚假的前导码。另外,我指的不是set to仅适用于 Firefox的特殊情况,而是一种似乎在几年前适用于大多数浏览器的方法。xmlHttpRequestreadyState3Content-Typemultipart/x-mixed-replace

有谁知道当前的浏览器行为是否已经淘汰了这些 Comet 流技术?

示例演示:

responseText通过xmlHttpRequest对象轮询负载:

http://ajaxify.com/run/streaming/xmlHttpRequest/countdown/ http://ajaxify.com/run/streaming/xmlHttpRequest/

常规页面加载缓慢,增量渲染不适合我:

http://ajaxify.com/run/streaming/

iFrame缓慢iFrame加载时轮询内容:

http://ajaxify.com/run/streaming/xmlHttpRequest/iframe/

这些演示不使用分块传输编码,但产生的行为是相同的,即不发生增量渲染。

关于彗星流的文章:

http://cometdaily.com/2007/11/05/the-forever-frame-technique/



短版结论:

所有 Comet 技术仍然有效,但是,在我的情况下,防病毒软件以不可预见的方式阻碍了事情的发展,因此请确保在不同的计算机和安全模式下进行测试,以确保它是否不起作用!

streaming iframe comet xmlhttprequest

5
推荐指数
0
解决办法
500
查看次数