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库的东西
请原谅我转述了你的问题 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适合于实时通信、长时间运行的进程等。仅仅因为您没有这样做并不意味着该语言不适合它。