python服务器消息推送_python-如何在Flask框架中实现服务器推送?

本文介绍了如何在Python的Flask框架中实现服务器推送(SSE)。通过设置mimetype为'text/event-stream',服务器可以持续发送更新,客户端使用EventSource API接收消息。示例代码展示了结合redis进行订阅和发布,以及处理客户端的JavaScript方法。虽然一些旧版浏览器不支持SSE,但可以使用EventSource.js或jquery.eventsource等Polyfills进行兼容。
摘要由CSDN通过智能技术生成

查看服务器发送的事件。 服务器发送事件是浏览器API,可让您继续打开服务器的套接字,订阅更新流。 有关更多信息,请阅读Alex MacCaw(剑圣)发表他为何杀死剑圣以及为何更简单的文章在许多情况下,服务器发送的事件是比工作更好的工具Websockets。

该协议非常简单。 只需将mimetype text/event-stream添加到您的响应。 浏览器将保持连接打开并监听更新。 一个事件从服务器发送的是一行以data:开头的文本,后面是换行符。

data: this is a simple message

如果要交换结构化数据,只需将数据作为json转储并通过网络发送json。

优点是您可以在Flask中使用SSE,而无需额外服务器。 github上有一个简单的聊天应用示例,使用redis作为发布/订阅后端。

def event_stream():

pubsub = red.pubsub()

pubsub.subscribe('chat')

for message in pubsub.listen():

print message

yield 'data: %s\n\n' % message['data']

@app.route('/post', methods=['POST'])

def post():

message = flask.request.form['message']

user = flask.session.get('user', 'anonymous')

now = datetime.datetime.now().replac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值