我想实时监测用户在comments
表中输入的数据。 我有一个Apache服务器上运行,并假设在端口1337是否可以将Nodejs与CakePHp集成?
节点服务器我会怎么做,每次有人保存新的数据,例如返回我的表行的总数comment
并显示它在view
?
也许方法是使$this->Comment->save($this->request->data);
使用不同的端口使用Httpsockect?
我想实时监测用户在comments
表中输入的数据。 我有一个Apache服务器上运行,并假设在端口1337是否可以将Nodejs与CakePHp集成?
节点服务器我会怎么做,每次有人保存新的数据,例如返回我的表行的总数comment
并显示它在view
?
也许方法是使$this->Comment->save($this->request->data);
使用不同的端口使用Httpsockect?
是的,这是可能的。
你有解决这个的多种方式,让我给你我的想法
您可以简单地使用长轮询和不使用Node.js的根本。如果在那里没有太多的交通流量,这是一个合适的解决方案,否则你会有一段糟糕的时间。
您可以使用websockets,并且完全不使用Node.js。 Here you have a basic guide about websockets and PHP。虽然,我几乎可以肯定你不能创建“房间”,也就是发送通知以获得特定的评论。您可以使用Ratchet。这是一个更复杂的库来处理websockets并支持房间。最后,如果你想充分利用Node.js和CakePHP,我建议以watching this talk given on Cakefest 2012开头,这正好描述你的场景。
看过之后,您可能想了解一下Socket.io。这是一个更复杂的解决方案,但这正是我在集成CakePHP和Node.js创建实时应用程序时所使用的解决方案。
此处的策略是让用户在访问/ article/view/123时加入room,假设房间名称为articleID,则socket.io将监听此房间中发生的事件。
您将拥有一个CakePHP方法来处理保存。然后,当用户提交表单时,你不直接调用Cake动作,你使用socket.io来分派一个事件,然后在你将事件传递给服务器(Node.js)并且nodejs将调用你的cakephp函数保存数据。当Nodejs从CakePHP接收到确认消息后,您将广播一个事件(使用socket.io),此事件将让所有连接到该房间的用户知道已经发出了评论。
Thaaaanksss!你可以发布你的答案的最后一个小例子吗?调用socket.io和sockect.io调用我的函数? –
我会,可能会在博客文章中涉及很多代码。 –
博客网址pls ??? = D –
你基本上可以选择Websockets和长轮询。
决定要使用并开始实施你的使用情况,其技术。考虑一下,Websockets或多或少都是新的。根据您的要求,您可能无法使用Websockets,因为您可能必须支持蹩脚的浏览器。 See this page。
棘轮似乎支持IE8 + – Alvaro
我不认为nodejs会是你的任务的一个很好的解决方案,它有点太多安装nodejs,只是使用websocket进行评论。longpolling更适合这种类型的任务,你可以用php来实现这一点,而不需要太多的努力。 – Gntem
谢谢,我在寻找什么来实现这个目标? –