Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WebSocket&;PHP 我开始考虑WebSoCube作为一个解决方案来取代我正在调试的一个新的PHP应用程序中的长轮询。_Php_Node.js_Websocket - Fatal编程技术网

WebSocket&;PHP 我开始考虑WebSoCube作为一个解决方案来取代我正在调试的一个新的PHP应用程序中的长轮询。

WebSocket&;PHP 我开始考虑WebSoCube作为一个解决方案来取代我正在调试的一个新的PHP应用程序中的长轮询。,php,node.js,websocket,Php,Node.js,Websocket,我有几个问题想知道人们是否能帮我解决 Nodejs服务器可以调用PHP吗?如果它调用了,它在连接方面会不会遇到和通过Apache相同的缺点?我们都知道nodejs是非阻塞的,Apache etc不是,但如果nodejs只是在自己的过程中调用PHP服务器,这难道不是类似的瓶颈吗 PHP和websockets是很好的匹配吗 除了socketio之外,还有什么好的js库显然只适用于NodeJ吗 有没有人找到一个很好的教程,它使用WebSocket和PHP后端,或者使用类似Ratchet PHP库的东西

我有几个问题想知道人们是否能帮我解决

  • Nodejs服务器可以调用PHP吗?如果它调用了,它在连接方面会不会遇到和通过Apache相同的缺点?我们都知道nodejs是非阻塞的,Apache etc不是,但如果nodejs只是在自己的过程中调用PHP服务器,这难道不是类似的瓶颈吗
  • PHP和websockets是很好的匹配吗
  • 除了socketio之外,还有什么好的js库显然只适用于NodeJ吗
  • 有没有人找到一个很好的教程,它使用WebSocket和PHP后端,或者使用类似Ratchet PHP库的东西,可以帮助我上路
  • 我非常感谢你的想法

  • 如果您使用apache,它将遇到相同的瓶颈。这可以通过使用不同的web服务器来解决,例如lighthttpdnginx。您甚至不需要节点
  • PHP没有像样的共享内存,这使得WebSocket的最大优势变得无关紧要。如果你不想在用户之间进行交互,那就足够了,但即使这样,我也不得不反对使用PHP。PHP在很多方面都很好,但实时通信不是其中之一
  • 你可能想看看
  • PHP不是一个好的后端。任何执行模型没有在自己的沙箱中运行和遗忘的东西,例如节点.NETC/C++Java都是很好的匹配。PHP适合于短时间运行的执行,例如实际的web站点甚至web服务,但不适合实时连接

  • 请原谅我转述了你的问题

    1:Node.js可以调用PHP,这难道不会有与Apache相同的缺点吗?

    调用run once PHP脚本与调用web页面具有相同的一般缺点,只是需要删除额外的处理层。Apache或任何web服务器本身都是一个非常薄的层,虽然可以节省一些时间,但节省的时间却微不足道

    无论出于何种原因,如果PHP在为客户端收集数据方面比Node.js更有效,那么在应用程序中包含PHP可能是明智的

    2:PHP和WebSocket是很好的匹配吗?

    传统的PHP脚本通常针对每个请求运行一次。绝大多数PHP开发人员都不熟悉事件驱动开发,PHP本身也不支持异步处理

    PHP是一种快速、成熟的脚本语言,它的速度越来越快,尽管它有许多缺点和缺点。(有人说它的打字能力弱是一个缺点,也有人说它的打字能力不够弱是一个缺点。)

    也就是说,任何语言实现WebSockets所需的最低要求是能够打开基本TCP端口并侦听请求。对于PHP,它是作为围绕C套接字库的一个瘦包装器实现的,还有一些附加的扩展和框架也可以改变使用PHP在TCP套接字中工作的感觉

    PHP的垃圾收集器也已经成熟。内存泄漏要么是因为完全无视内存空间(我在看你,Zend Framework),要么是因为开发人员故意破坏垃圾收集系统,他们认为自己很聪明,或者想证明打败GC是多么容易。(剧透:如果你知道细节,每种语言都很简单!)

    在PHP中设置守护进程(长时间运行的后台进程)是完全可能的,而且非常容易。甚至可以使其行为良好,能够优雅地重新启动并将其连接转移到同一脚本的新版本,甚至是运行不同版本PHP的同一服务器上的同一脚本,尽管这有点超出了范围

    至于是否匹配良好,则完全取决于开发人员。您是否愿意、能够并且乐于使用PHP编写WebSockets服务器,或者使用现有的服务器之一?对那么你就是PHP和WebSocket的好搭档了

    3:WebSockets的JS库

    老实说,我还没有研究过它们

    4:使用PHP和WebSocket的教程

    我个人喜欢这个教程:

    尽管我有很好的权威,该教程的细节对于特定的WebSockets服务器很快就会过时。(不过,该服务器仍将有一个活动维护的遗留分支。)

    如果链路损坏:

    使用PHP Websockets服务器(可在Github上获得,很快将被加载),扩展基本的
    WebSocketServer
    抽象类,并实现抽象方法
    process()
    connected()
    ,和
    closed()


    不过,上面的链接提供了更好的信息,所以只要链接存在,就可以使用它。

    Ratchet PHP非常干净。我也在研究。可能很有用,包括演示应用,我想我一直关注的一件事是,如果前端是通过PHP交付的,那么Nodejs支持的websocket在其他地方如何与现有的代码库交互?您可以将web服务器配置为使用websocket路由的反向代理,并将其转发到Node。Node不能使用PHP代码,但可以调用用PHP编写的服务,或者直接访问持久性存储,而不是通过PHP。PHP适合于实时通信、长时间运行的进程等。仅仅因为您没有这样做并不意味着该语言不适合它。