PHP应用程序+基于WebSocket的Socket.IO通知

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客户端一起破解它的方法.

leg*_*ter 8

关于使用PHP和Socket.IO的本教程回答了问题的主要部分.

socket.io不是你唯一的选择.看看实时网络技术指南.从它的外观看,现在最好的基于PHP的解决方案是Ratchet.这需要作为一个单独的进程运行,因此您仍然会遇到跨进程通信问题.

常见的跨进程通信问题是使用消息队列.当您希望在Apache上运行的PHP应用程序通知实时Web技术的事件时,就会出现问题.你可能不得不通过网络电话来做到这一点,即使这是从实时网络技术流程到apache服务器的调用.

另一个选择是将实时通信卸载到我工作的Pusher等托管服务.

这个最近的问题也是相关的,并且有一些有用的链接:是否可以使用Web套接字的本机PHP支持?

  • 这并没有解决问题的主要请求:USING Socket.IO (2认同)