Python 可以使用AngularJS+;烧瓶堆?

Python 可以使用AngularJS+;烧瓶堆?,python,angularjs,push-notification,flask,Python,Angularjs,Push Notification,Flask,我的网站有一个Python/Flask后端和一个有角度的前端。在后端,有一个进程偶尔会检查SQS的消息,我希望它将通知推送到客户端,然后客户端可以更新角度控制器。在我现有的技术中,实现这一目标的最佳方法是什么 为了能够推送到客户端,您必须以某种方式实现web套接字支持。如果您想将其保存在python/flask中,那么本教程将介绍如何使用gevent: 在那篇文章中,Geoffrey还提到了一个与SocketIO兼容的python/gevent库,它允许您利用SocketIO客户端JS库,称为

我的网站有一个Python/Flask后端和一个有角度的前端。在后端,有一个进程偶尔会检查SQS的消息,我希望它将通知推送到客户端,然后客户端可以更新角度控制器。在我现有的技术中,实现这一目标的最佳方法是什么

为了能够推送到客户端,您必须以某种方式实现web套接字支持。如果您想将其保存在python/flask中,那么本教程将介绍如何使用gevent:

在那篇文章中,Geoffrey还提到了一个与SocketIO兼容的python/gevent库,它允许您利用SocketIO客户端JS库,称为“gevent-SocketIO”

这可能会减少在跨浏览器兼容性方面需要做的工作,因为SocketIO已经做了很多

下面是一个非常好的教程,介绍如何在AngularJS中使用SocketIO,以便在事件从SocketIO传入时通知AngularJS模型:


如果您不想托管web套接字后端,您可以寻找一个托管服务,如PubNub或Pusher,然后将它们作为服务集成到AngularJS中。您可以通过Python应用程序与这些服务进行通信(当发生SQS通知时),它们将为您通知所有连接的客户端。

我知道这有点晚了,但我已经完全按照您的要求完成了(尽管没有)

最后,我有一个单独的进程运行一个名为的websocket服务器,该服务器侦听redis发布/订阅套接字,代码是

这允许您从几乎任何可以访问redis的东西向客户端发送推送通知

因此,当我想向所有连接的客户端发布消息时,我只需像这样使用redis:

r = redis.Redis()
r.publish('broadcasts', "SOME MESSAGE")
到目前为止,这种做法效果相当不错。我目前无法向特定的客户端发送推送通知。但是,如果您有一个身份验证系统或其他东西来识别特定的用户,您可以将其绑定到开放的WebSocket,然后能够直接向特定的客户端发送消息:-)

当然,您可以使用任何websocket服务器或客户端(如socket.io或sock.js),但这对我来说非常有用:-)