PHP&;彗星。需要一些指导吗

PHP&;彗星。需要一些指导吗,php,comet,Php,Comet,我一直在搜索使用PHP制作实时网站。(彗星)我已经找了很长时间了。(大约一个月左右)我甚至检查了一些PHP聊天脚本,并在我的Web服务器上使用了这些脚本,但大多数都出现了一些问题。(将解释) 到目前为止,大多数人都说了同样的话:PHP并不是COMET可以使用的最好的语言。chat/comet的例子充其量也只是一些骇人听闻的例子 我这样问是因为,我想在我的网站上有一些功能,比如允许登录的人彼此聊天。这就是我需要到PHP页面的活动连接的地方。我也在计划制作一款基于浏览器的游戏,而且必须要有一个动态连

我一直在搜索使用PHP制作实时网站。(彗星)我已经找了很长时间了。(大约一个月左右)我甚至检查了一些PHP聊天脚本,并在我的Web服务器上使用了这些脚本,但大多数都出现了一些问题。(将解释)

到目前为止,大多数人都说了同样的话:PHP并不是COMET可以使用的最好的语言。chat/comet的例子充其量也只是一些骇人听闻的例子

我这样问是因为,我想在我的网站上有一些功能,比如允许登录的人彼此聊天。这就是我需要到PHP页面的活动连接的地方。我也在计划制作一款基于浏览器的游戏,而且必须要有一个动态连接

2年前,AJAX是一件罕见的事情,在Facebook的光环下熠熠生辉。现在几乎每个人都在使用它,它成为了web开发的标准。现在,基于COMET的网站正在增长。Youtube、Google+、Facebook、EA的战记等等。我相信我应该学会如何使用它

好的,这是我的问题。(下面的一些信息是我在谷歌上搜索时收集的。不确定它们是否正确。)

  • 有些语言(如Python)有专门为此任务设计的web服务器。我相信其中一个叫做Tornado Web服务器。开发并配置为模拟数千个活动连接。我相信Appserv中没有这样的选项,但有人告诉NGINX可以用一个合适的配置来处理它。这是真的吗?应该进行哪些配置?是否有用于此作业的PHP web服务器

  • 一些最受欢迎的建议是:

    a。使用类人猿

    b。使用Socket.IO

    c。Node.js

    有什么方法可以将它们与PHP一起使用吗?哪一个最有希望?你能给他们一些指导吗?除了这些还有别的吗

  • 我使用了comet聊天脚本。基本上,您一直在查询数据库,并通过循环使用usleep()将flush()的结果输出到浏览器。(此代码变得难以理解,因此我将提供一个快速代码)

  • usleep()
    函数基本上破坏了基于Windows操作系统的web服务器。在基于windows的操作系统上运行的comet应用程序上依赖
    usleep()
    正常吗?我的意思是,有没有办法“睡眠”PHP脚本?无论我做什么,WIN和UNIX服务器上的CPU负载都将达到%100

  • PHP在这方面真的那么弱吗?我应该放弃PHP而专注于其他语言吗?如果是的话,你会推荐哪种语言?(这种语言应该很有前途。例如,添加HTML5后,AS3没有太多用途,而当JS大放异彩时,AS3更有可能很快消亡。)

  • 什么是WebSync?它可以与PHP一起使用吗

  • 请记住,我需要使用COMET制作以下应用程序:

    • 一个聊天脚本,在这里登录的玩家可以互相聊天
    • 基于浏览器的游戏。我已经在编码时使用了JSON/AJAX之类的东西,但是为了接收这些步骤,我应该提取数据,因此需要一个活动连接。(不要想象高级游戏,我所说的游戏充其量只是象棋。)

    如果你能给我一个简短的指导,我将不胜感激。毕竟,由于互联网上有这么多随机的文章,我一天一天地感到困惑。人们甚至把
    setInterval()
    称为COMET,所以它完全是一团乱。

    这里需要澄清一下。你要找的不是特定语言本身。如果您想用PHP实现comet功能,您将依赖Web服务器(例如Apache)来执行HTTP流。您还需要了解,HTTP/1.1之前的HTTP版本不支持这一点。话虽如此,如果您想要一个非阻塞的基于事件的web服务器,您最好按照建议查看Tornado和Node。

    Comet是一种编程技术,它允许web服务器向客户端发送数据,而无需客户端请求。这种技术将产生比经典AJAX更具响应性的应用程序。用户必须创建请求(例如,通过单击链接)或者,为了从服务器获取新数据,必须定期发出AJAX请求

    但这会在您的web服务器上产生大量流量。如果您想在PHP中构建聊天应用程序,请使用pusher,它是一种第三方服务,易于使用。 这是pusher的链接

    第二个建议是使用ratchet创建聊天应用程序。 这是棘轮的链接


    我希望它能帮助你

    如果你想做实时应用,我建议node.js:)对php做一个很好的总结;我应该放弃PHP吗?你是说一般情况?绝对不是。这是完全可以接受的使用这作为您的主要语言,同时使用其他更适合手头的任务。对于Comet,使用一些简单、轻量级的工具来实现线程,并且可以与站点的数据库对话。在你的帖子中有一些有趣的问题,但是“什么是WebSync”是可以在这里提问之前进行研究的。如果您想知道它是否可以与PHP一起使用,请在web上搜索“WebSync with PHP”:)@tehlulz-这篇文章很有趣,它提出了一些公平的观点。但我不确定我是否喜欢它尖刻的语调,也不喜欢评论中可预见的面包大战。难道我们不能学会尊重彼此的工具吗?
    while(true)
    {
        // query database
       // output the result
       // flush the browser
       // sleep for few seconds to lower cpu load 
    }