jol*_*olt 15 php apache websocket node.js socket.io
我有一个使用laravel用PHP编写的Web应用程序.
现在,我必须添加实时通知系统,从服务器 - >客户端推送消息,并可以检索从客户端 - >服务器推送的消息.
由于Socket.IO向后兼容并且优雅地降级,我想将它用于WebSocket/AJAX轮询部分.
问题是Socket.IO默认使用Node.JS后端.
我有root访问服务器,并行运行(Apache和Node)没有问题或添加任何额外的东西.
问题是,如何从PHP向Node + Sockets.IO发送消息?
然后,如何将消息从Sockets.IO + Node传输到PHP?
我已经将Node + Sockets留给了浏览器部分,因为这非常简单.
我见过使用Express.js + CURL和/或POST请求的例子,但是,是不是有更低级别的方法呢?
我知道DNode + PHP,但我无法想象如何组装所有东西 - Apache,PHP,Node,Socket.IO,DNode,因此它可以无缝地协同工作.
此外,我已经转换为这个PHP WebSockets服务器实现的laravel库.但是,这个库的问题在于它为客户端使用干净的WebSockets.而且,我找不到与Socket.IO客户端一起破解它的方法.
关于使用PHP和Socket.IO的本教程回答了问题的主要部分.
socket.io不是你唯一的选择.看看实时网络技术指南.从它的外观看,现在最好的基于PHP的解决方案是Ratchet.这需要作为一个单独的进程运行,因此您仍然会遇到跨进程通信问题.
常见的跨进程通信问题是使用消息队列.当您希望在Apache上运行的PHP应用程序通知实时Web技术的事件时,就会出现问题.你可能不得不通过网络电话来做到这一点,即使这是从实时网络技术流程到apache服务器的调用.
另一个选择是将实时通信卸载到我工作的Pusher等托管服务.
这个最近的问题也是相关的,并且有一些有用的链接:是否可以使用Web套接字的本机PHP支持?