我有一个现有的PHP应用程序,我需要添加实时通知。 为了实现这一点,我已经安装了node.js(打算为所有实时function添加socket.io)
然而。 尽pipe花了最近三个小时的时间研究,并试图让我的头脑如何融合两者,但我发现自己并没有更进一步的了解。
我目前正在使用以下内容:
我已经写了代码,从客户端发送一个事件到PHP,并插入一个通知到数据库。 当收件人刷新页面时,他们当然会看到通知。 我只需要node.js来处理实时推送给客户端,但是如何去设置它却不知所措。
在这种情况下,我真正需要知道的是:
最终,我想简单地能够运行一个PHP函数,并期望node.js / socket.io / websockets将通知推送到客户端。 我只是不知道如何到达那里。
预先感谢任何示例/信息/指南。
在这种情况下我会做的是用Socket.IO设置一个Node.js服务器。 这为您提供了一个跨浏览器的方法来发送近实时数据给客户端。
当客户端加载你的PHP页面时,你将有一个<script>
标签指向你的Node.js服务器来加载Socket.IO。 一旦加载,Socket.IO JavaScript客户端将连接到您的Node.js Socket.IO服务器并等待事件发出。
现在,由于您希望将这些事件从PHP发送出去,您需要在PHP应用程序和Node.js之间建立通信通道。 我建议使用Redis pub / sub 。 基本上,你的PHP应用程序发布一条消息,你订阅的Node.js服务器将收到它。 这些服务器可以立即将消息传递给客户端,以从PHP获取更多数据。 (我想你会发现,尽管你的Node.js服务器只是简单地发送这些数据就可以了)。
如果你愿意,你可以把Node.js放在你的Nginx服务器后面, 但是你需要最新和最好的版本来支持真正的web套接字 。