当发生服务器端更新时,如何更新AngularJS中的$ scope?

时间:2015-01-01 17:20:46

标签: angularjs cakephp websocket ngresource ratchet

背景

  1. 我正在尝试制作一个使用PHP,MYSQL后端和AngularJS前端的单页实时应用程序

  2. 我的后端正在使用CakePHP框架,该框架提供JSON API,而前端使用AngularJS中的ngResource来访问此API。

  3. 我有'Ratchet WebSockets for PHP'工作,当后端有更新内容时,可以通过websockets触发对浏览器的响应。


  4. 我的不完整解决方案

    解决方案1:通过websocket使用响应通过某种$ scope.model.push(websocket.data)方法更新AngularJS $ scope对象?

    解决方案2:通过websocket使用响应来触发ngResource上的Refresh,它会完全刷新$ scope对象吗?


    问题

    我的解决方案是否可行?我怎么能实现它?

1 个答案:

答案 0 :(得分:2)

您只需要从WS读取事件并使用$emit$broadcast填充它们,然后您的控制器就可以订阅与它们相关的任何事件。

看看:

angular websocket factory

AngularJS and WebSockets beyond