TOGOUTECH

php - 用 erlang 实现 Comet 并将其用于 PHP 应用程序

我正在构建一个PHPWeb应用程序,我已经到了需要构建一个Comet服务器的地步,因为我需要在新数据可用时更新我的​​用户(非常像FB)。我花了很多时间在网上搜索,得出的结论是构建Comet服务器的最佳方法是使用erlang构建它。我还发现apache-php不是这样做的好组合,因为每个请求的进程问题。所以,我必须为comet应用程序构建一个轻量级的http服务器。我完全是erlang世界的新手,但我正在考虑在erlang中实现Comet服务器,并使其充当仅更新客户端的接口(interface)。对于其余的Web应用程序功能,我仍然想继续使用PHP来实现它们。因此,将更新客户端的请求定

php - 可扩展的 PHP(基于 AJAX)聊天系统的最佳方法

我正在为一家公司构建一个聊天系统,我想知道构建该系统的最佳方式是什么?我们当前的设置是带有PHP和Memcacheq的NginxHTTP服务器(作为将聊天消息附加到用户自己的队列的消息队列)。然后我们轮询Nginx服务器(通过Comet样式请求)并查询消息队列以获取更新。使用Memcacheq等消息队列来处理同时具有用户到用户和站点范围的聊天的聊天系统是个好主意,还是最好坚持使用MySQL?谢谢! 最佳答案 Memcache仅在数据有些陈旧(或数据库设计不佳以增加查询执行时间)时才有用。在您的情况下(聊天系统),数据将是新鲜的并且添

php - PHP 中的内存泄漏 Comet 服务器

如果用PHP编写,为什么像Tornado这样的Comet服务器特别容易发生内存泄漏?PHP在实现像Tornado这样的长轮询框架/服务时是否存在真正的弱点?谢谢 最佳答案 它的要点是,PHP最初的编写目的是为每个请求提供一个全新的进程,一旦所述请求结束,您就可以丢弃这些请求,而在那个时候,诸如Comet和长轮询之类的东西并不是真正的在table上。因此,有相当多的领域——尤其是垃圾收集器——PHP最初并不是为长时间运行而设计的,它也不太关心,因为每个http请求都有一个品牌新的PHP实例。近年来它明显变得更好,但我仍然不会用它来创建

javascript - 长轮询和使用 cometd 之间有区别吗

我正在实现一个需要实时更新的系统。我一直在研究某些场景,其中包括Comet。实现这一点,我看不出这与传统的长轮询有任何不同。在这两种情况下,您都必须发送请求,然后服务器发回响应。在浏览器中解释响应,然后启动新请求。那么,如果在这两种情况下我都需要打开和关闭连接,为什么还要使用comet。 最佳答案 一些Comet技术不要求您不断打开新请求(例如分块隐藏的iframe),其想法是保持请求打开并让服务器定期发送数据。但这在没有负面副作用的情况下(正如一位维基百科贡献者巧妙地指出的那样)在所有主要浏览器中都无法正常工作,因此需要长轮询技术

javascript - "HTTP Streaming"(推送)AJAX 模式的跨浏览器实现

客户端从服务器请求网页。然后客户要求进行额外的计算;服务器执行一系列计算并在可用时立即发送部分结果(文本格式,每行包含单独的完整项目)。客户端使用服务器提供的信息更新网页(使用JavaScript和DOM)。这似乎适合HTTPStreaming(current版本)来自Ajaxpatterns网站的模式。问题是如何以跨浏览器(浏览器不可知论)的方式做到这一点,最好不使用JavaScript框架,或使用一些轻量级框架,如jQuery。问题始于以跨浏览器方式生成XMLHttpRequest,但我认为主要问题是并非所有浏览器都正确地实现了onreadystatechangefromXMLHt

javascript - "long polling"是创建 Web 实时应用程序的最有效方法吗?

我想创建一个这样的应用程序:http://collabedit.com/创建此实时应用程序的最有效方法是什么?闪光?长轮询?HTTP流?还是别的?谢谢;) 最佳答案 目前,长轮询可能是最好的解决方案。许多大牌网站都有长轮询实现,包括Facebook、Google和eBay。并非每个人的浏览器都安装/启用了Flash。以后WebSockets或许能够为我们完成更轻松的工作。更新:截至撰写本文时,WebSocketAPI在最新的WebKit(Chrome/Safari)和Firefox4beta中实现。还有Opera的公共(public

javascript - 长轮询 XHR 与 iframe

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭9年前。我正在实现典型的服务器推送(cometd)应用程序。我在两个选项之间进行选择:longpollXHR和iFrame。这些有什么好处和坏处?我知道跨站点限制并且iFrame是非常重量级的组件......还有其他区别吗?例如,传输的“可靠性”或对组件的控制级别?您怎么看,是否有一个正确的答案是哪种方法更好,或者这两种方法都有用例?提前致谢。附言我有一个非常好的

javascript - 长时间保持的 AJAX 连接被防病毒软件阻止

好吧,这太奇怪了。我正在构建一个Web应用程序,该应用程序依赖于使用COMET的长期保持的HTTP连接,并使用它将数据从服务器流式传输到应用程序。现在的问题是,这似乎不适用于某些反病毒程序。我们现在处于测试阶段,一些用户在启用防病毒软件时会遇到应用程序问题。它也不仅仅是一种特定的防病毒软件。我在网上查看时发现Avast可以解决此问题:http://avricot.com/blog/index.php?post/2009/05/20/Comet-and-ajax-with-Avast-s-shield-web-:-The-salvation-or-not但是,这里有人对如何处理这个问题有

javascript - Safari 中是否可以使用 Http Streaming Comet?

对于HTTPStreamingComet,我指的是“永远的iframe”/“永远的xhr”变体,它们在从服务器推送数据后不会关闭连接,这与关闭并重新发送请求的标准轮询和长轮询相反每个服务器推送事件的新请求。我查看了dojo.io.cometd包,它们似乎只有轮询实现。我还找到了thisexample,但即使经过相当多的修补,它似乎也无法在webkit中工作(我让它在其他任何地方都可以工作)。Thisannouncementfromthesafariblog似乎暗示xhr是可能的,但我找不到任何代码或文档,也无法让它工作。有谁知道在Webkit浏览器(Safari和Chrome)中实现H

javascript - Gmail如何在Opera上做 cometd ?

我想知道Gmail(或其他任何人)如何在Opera上运行cometd。这是我目前从实验中了解到的信息。它不使用event-source在Opera10.51中损坏的标签。它不使用iframe,后者显示旋转的跳动器和忙碌的鼠标光标。当readyState=3时,它不会在xmlhttprequest上使用responseText,这在Opera上已知会被破坏。我尝试在mibbit和etherpad中查看它是如何完成的,我发现它们都使用长轮询。赏金谁能告诉我一种比Operacomet流式传输的“事件源”更好的方法,或者gmail如何进行流式传输(或者长轮询,如果这样做的话)。