我在Apache上构建并运行了一个PHP应用程序,使用Nginx作为反向代理来提供静态资源.
我还安装了Redis,我用它来存储每个用户活动流的活动ID.该活动被写入MySQL数据库,然后Redis将活动ID推送到每个用户流中.当用户收到他/她的活动流时,应用程序首先从Redis检索活动ID的用户列表,然后通过MySQL IN()
查询获取实际活动数据.
这一切都很好,但我想开始为这个设置添加实时功能.我希望能够将这些事件直接推送到用户浏览器并添加常规实时通知.
为此,我已经使用socket.io安装了node.js. 我正确启动并运行了socket.io服务器,并在页面加载时自动连接客户端.
我正在努力的地方是了解如何从我的PHP应用程序中向socket.io发布消息.由于PHP和node.js无法直接通信,我的理解是我最好将Redis用作中间人,因为我已经安装并启动并运行它.但是我不知道该怎么做.
我需要的是从PHP发送通知到Redis然后再发送到socket.io以便将其推送到相关客户端的过程描述(任何代码示例都非常有用).
另外,我不明白socket.io如何知道要发送到哪个客户端.我如何传递这些信息并保持一致?这甚至是必要的吗?我是否需要在Redis中存储我的PHP会话并让socket.io在用户连接时收集数据?或者还有另一种方式吗?
提前致谢.
请注意:我的PHP SESSION数据当前已保存到磁盘.