我开始使用angular并且对双向数据绑定功能及其$ http方法着迷,它允许我将更改保存到我的mysql数据库中,而无需刷新页面。
我目前着迷的另一件事是使用firebase的多个客户端的实时功能。当数据库收到任何更改时,所有客户端都会在实时更新。我可能想使用firebase,但是我必须完全放弃Laravel和MySql作为持久层,我想暂时保留它,因为我的应用程序已经在Laravel中工作,而不是实时。< / p>
如何使用MySQL和Angular在Laravel中使用Real Time应用程序来更新每个客户端而不刷新视图?
如果我没有弄错,Pusher和PubNub正在使用websockets提供与服务器的必要开放连接,所以当服务器有共享内容时,angular现在将呈现它。
由于我想使用Laravel和MySQL作为持久层,我不确定,最好的方法是什么。我甚至不确定,如果我理解了一切,我在上面写的,因为我是角色和实时应用的新手。
将一些实时功能引入PHP / MySQL应用程序的下一步必要步骤是什么?
答案 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客户端,所以你可以将它们混合在一起。