如何对没有http请求的python脚本使用flask-socketio

时间:2017-02-08 11:23:05

标签: python flask socket.io flask-socketio

我一直关注thisthis链接,以便在客户端和服务器之间进行通信。我的基本想法是弹出我正在从app.py(我的烧瓶应用程序)发出的通知。但是,我也有单独的python脚本没有http请求。我也希望从这些脚本向客户端(浏览器)发送通知。所以我想从我的其他python脚本向app.py发送消息并从app.py发出消息。是否有更好的替代方案来实现这一目标?

1 个答案:

答案 0 :(得分:2)

  

我正在考虑从我的其他python脚本向app.py发送消息并从app.py发送消息

这实际上是Flask-SocketIO如何做到的。

您必须运行可由服务器和外部脚本访问的消息队列,通常是Redis或RabbitMQ。然后在您的服务器中,按如下方式创建SocketIO对象:

socketio = SocketIO(app, message_queue='redis://')

在脚本中,您可以按如下方式创建它:

socketio = SocketIO(message_queue='redis://')

显然,您可以更改邮件队列URL以匹配您正在使用的URL。

第一个对象是一个完全启用的服务器,它附加到app Flask实例。第二个是#34;只写"只能发出的对象,因为它没有给服务器附加到。)

当您从外部脚本发出时,脚本会将消息发布到消息队列,该消息将由服务器拾取然后执行。