将Node.js与Symfony2或PHP集成


Integrate Node.js with Symfony2 or PHP

我正在用Symfony2开发一个web应用程序。我需要创建一个推送通知系统(像Facebook)。当一个用户发布内容时,我需要其他一些用户收到通知。

我看到Node.js是最简单的方法。但是,我做了一些简单的例子,一切都很好,但我不知道如何将这个node.js应用程序与我的Symfony2应用程序集成,或者真正与PHP应用程序集成。

有人能帮我吗?

提前感谢!

请注意,你没有给出足够的细节,所以我将回应作为前端开发人员,而不是作为移动开发人员

集成NodeJS和PHP(一般来说)不是一个好方法,因为你需要分别启动两个服务器,当你的应用程序是PHP的时候,在JS中创建websocket服务器,最后从你的PHP创建一个请求(GET或POST)到你的JS服务器。好吧,很乱,所以我把我的解决方案暴露在。

下面

移动应用的快速洞察。从技术上讲,没有简单的方法。您可以使用推送"协议"(http://www.wikiwand.com/en/Push_technology)与notificationpush (https://github.com/Ph3nol/NotificationPusher)。我以前没有用过,所以我不能帮你。

大多数时候,当人们想到Push时,长时间的投票就会奏效。对于初学者来说,这意味着请求是客户端发出的,服务器不发送数据。关闭连接,直到有新数据。

你怎么实现这个?!?基本上,您可以使用ini_setset_time_limitmax_execution_time更改为当前脚本的非常长的时间,并启动一个循环(如do..while),其中包含睡眠和对数据的检查。从Javascript中调用Ajax,例如jquery: $.get。只要记住取消超时并保持在异步模式。

该解决方案的唯一缺点是您将始终打开到服务器的连接,这将在移动设备上消耗更多的电池。如果您要接收多种类型的数据,请不要犹豫,合并调用并在响应数据中发布类型,因为大多数浏览器只允许2或3个同时连接到同一服务器。

我听起来像你描述的WebSockets。

看一下Socket。Io,它是node.js的模块。

也有一个例子在GitHub https://github.com/Automattic/socket.io/tree/master/examples/chat

你感兴趣的文件应该是index.js和public/main.js。

您可以在http://socket.io/demos/chat/

查看该示例。