将Node.js与Symfony2或PHP集成

时间:2014-07-03 13:51:05

标签: javascript php node.js symfony push-notification

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

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

任何人都可以帮助我?

提前致谢!

2 个答案:

答案 0 :(得分:2)

请注意,您没有提供足够的详细信息,因此我将作为前端开发人员而非移动开发人员回复

集成NodeJS和PHP(一般情况下)并不是一个好方法,因为你需要分别启动两个服务器,在你的应用程序使用PHP时在JS中创建websocket服务器,最后从PHP创建一个请求(GET或POST)给你JS服务器。嗯,这是一个很大的混乱,所以我会在这里公开我的解决方案。

快速了解移动应用。从技术上讲,没有简单的方法。您可以将推送“协议”(http://www.wikiwand.com/en/Push_technology)与NotificationPusher(https://github.com/Ph3nol/NotificationPusher)一起使用。我之前没有用过,所以我无法帮助你。

一般而言。 大多数时候,当人们想到Push时,长时间的民意调查就可以解决问题。对于初学者来说,这意味着请求是客户端的,服务器不发送数据和关闭连接,直到有新数据。

你如何实现这个?!? 基本上,您使用 ini_set set_time_limit max_execution_time 更改为当前脚本的很长时间并启动循环(就像做.. while)睡觉并检查里面的数据。从您的Javascript中只需进行Ajax调用,例如使用jquery:$ .get。请记住删除超时并保持异步模式。

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

答案 1 :(得分:0)

我听起来像是在描述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/

上看到该示例