查看服务器发送的事件。 服务器发送事件是浏览器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