Laravel:使用Angular创建实时应用程序

时间:2014-07-19 00:36:53

标签: angularjs laravel firebase pusher pubnub

我开始使用angular并且对双向数据绑定功能及其$ http方法着迷,它允许我将更改保存到我的mysql数据库中,而无需刷新页面。

我目前着迷的另一件事是使用firebase的多个客户端的实时功能。当数据库收到任何更改时,所有客户端都会在实时更新。我可能想使用firebase,但是我必须完全放弃Laravel和MySql作为持久层,我想暂时保留它,因为我的应用程序已经在Laravel中工作,而不是实时。< / p>

如何使用MySQL和Angular在Laravel中使用Real Time应用程序来更新每个客户端而不刷新视图?

如果我没有弄错,Pusher和PubNub正在使用websockets提供与服务器的必要开放连接,所以当服务器有共享内容时,angular现在将呈现它。

由于我想使用Laravel和MySQL作为持久层,我不确定,最好的方法是什么。我甚至不确定,如果我理解了一切,我在上面写的,因为我是角色和实时应用的新手。

将一些实时功能引入PHP / MySQL应用程序的下一步必要步骤是什么?

2 个答案:

答案 0 :(得分:3)

您的问题的解决方案是:

1º - 使用websocket-server打开websocket连接并订阅频道,然后使用ajax将数据发送到您的服务 tutorial angular pusher

2º - 在服务器端,您获取数据,保存到您的数据库并将'PUBLISH'发送到相应的通道到websocket服务器 lib useful for this

3º - 通过订阅实时获取数据

Pusher.subscribe('channel', 'event', function (item) {
    // code
});

答案 1 :(得分:1)

我最近遇到了类似的问题,最后我最终使用了Redis发布/订阅Redis。您可以在通道中存储数据,然后订阅任何更改。当某些内容发生变化时,您可以将其发送给Pusher,然后Pusher将其发送给客户。

我还建议考虑Node.js和Socket.io,因为如果没有第三方服务,你可以获得非常好的性能,即使你没有节点经验,你也可以在{{3}上找到很好的例子。如何编写应用程序。

对于Redis,有一个很好的PHP库,名为Predis,还有Redis Node客户端,所以你可以将它们混合在一起。