我正在使用Symfony2开发Web应用程序。我需要创建一个推送通知sysmte(如Facebook)。当用户发布内容时,我需要其他一些用户收到通知。
我看到Node.js这是最简单的方法。但是,我做了一些简单的例子,一切正常,但我不知道如何将这个node.js应用程序与我的Symfony2应用程序集成,或者实际上与PHP应用程序集成。
任何人都可以帮助我?
提前致谢!
答案 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。
上看到该示例