Socket.IO integration for Flask applications.
The following organizations are funding this project:
Socket.IO |
Add your company here! |
---|
Many individual sponsors also support this project through small ongoing contributions. Why not join them?
You can install this package as usual with pip:
pip install flask-socketio
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socketio.event
def my_event(message):
emit('my response', {'data': 'got it!'})
if __name__ == '__main__':
socketio.run(app)
概述 websocket是html5中实现了服务端和客户端进行双向文本或二进制数据通信的一种新协议,其实已经低于HTTP协议本身和HTTP本质上没有什么关系了。不过形式上两者还是有想象之处。因此websocket的连接地址是长这样的:ws://localhost:8080。可以看到,协议修饰符不是http了。 另外,websocket在连接建立阶段是通过HTTP的握手方式进行的,这可以看做是为
Flask-SocketIO为Flask应用程序提供对客户端和服务器之间的低延迟双向通信的访问。客户端应用程序可以使用Javascript,C++,Java和Swift中任何SocketIO官方客户端和任何兼容客户端来建立与服务器的永久连接。 安装 pip install flask-socketio 依赖 Flask-SocketIO兼容Python2.7和Python3.3+,该软件的异步服
flask-socketio 部署 部署 Flask-SocketIO 服务器有很多选择,从简单到极其复杂。在本节中,描述了最常用的选项。 嵌入式服务器 socketio.run(app)最简单的部署策略是通过调用如上例所示来启动 Web 服务器 。这将查看为最佳可用 Web 服务器安装的软件包,在其上启动应用程序。当前评估的 Web 服务器选择是 eventlet,gevent和 Flask 开
flask-socketio能够实现客户端和服务器之间的低延迟双向通信。客户端可以使用js/c++/等任何官方支持的客户端库建立与服务器的长连接。 安装 pip install flask-socketio 要求 flask-socketio与python3.6+兼容,依赖的异步服务可以从以下三种选择其一。 eventlet 是性能最佳的选项,支持长轮询和websocket传输。 gevent
上回我们说到了一些小功能,这次再对flask应用做一个补充,交代flask的上下文变量,身份认证等功能。 当我们的flask应用做好之后就不得不涉及到部署,本文将会讨论flask-socketio的三种不同类型的服务器部署,nginx的反向代理,外部进程消息的处理等 到今天为止,flask-socketio官方文档,除了api,其它都已经翻译完毕,感谢各位的赏脸。_ 11.访问flask上下文全局
Gunicorn 部署flask-socketio 项目 问题: 最近使用flask开发的websocket服务,要开始上线了,本地开发环境测试一切的OK.使用Gunicorn部署后,如果在/etc/resolv.conf中有配置 一个不能解析的域名就会出现,所有请求的接口都需要30秒后才能有响应,看起来好像被阻塞了. 如果在/etc/resolve.conf中没有配置相关的nameserver或
flask-socketio 安装 您可以使用以通常方式pip来安装此软件包: pip install flask-socketio 要求 Flask-SocketIO 与 Python 3.6+ 兼容。这个包所依赖的异步服务可以从三个选项中选择: eventlet是性能最佳的选项,支持长轮询和 WebSocket 传输。 许多不同的配置都支持gevent。gevent 包完全支持长轮询传输,但
问题内容: 在官方的快速入门中,建议在使用单个 模块 时使用: 2. …如果您使用的是单个模块(如本例所示),则应使用,因为取决于它是作为应用程序启动还是作为模块导入,其名称将有所不同(与实际导入名称不同)。… 但是,在他们的API文档中,当我的应用程序为 软件包 时,建议进行硬编码: 因此,您在此处提供的内容很重要。如果使用单个模块,则始终为正确的值。但是,如果您使用的是包,通常建议在其中硬编码
在前面,我们介绍了 REST Web 服务,并使用 Flask 提供服务。这里,我们使用第三方库 Flask-RESTful,它使得在 Flask 中提供 REST 服务变得更加简单。 安装 使用 pip 安装: $ pip install flask-restful 使用 下面我们主要使用官方文档的例子进行说明。 Hello World 我们先来看一个简单的例子。 # -*- coding: u
Bootstrap 是 Twitter 开源的一个 CSS/HTML 框架,它让 Web 开发变得更加迅速,简单。要想在我们的 Flask 应用中使用 Boostrap,有两种方案可供选择: 第 1 种,在我们的 Jinja 模板中直接引入 Bootstrap 层叠样式表 (CSS) 和 JavaScript 文件,比如 bootstrap.min.css,bootstrap.min.js; 第
在 Web 应用中,我们经常需要保护我们的 api,以避免非法访问。比如,只允许登录成功的用户发表评论等。Flask-HTTPAuth 扩展可以很好地对 HTTP 的请求进行认证,不依赖于 Cookie 和 Session。本文主要介绍两种认证的方式:基于密码和基于令牌 (token)。 安装 使用 pip 安装: $ pip install Flask-HTTPAuth 基于密码的认证 为了简化
假设你的 Web 服务对于某些请求比较耗时,而该请求的返回结果在较短的时间内(比如 5 分钟内)都是足够有效的,这时你能想到什么方法去改善这种状况呢?缓存?对,至少这是一种提高性能的最简单的方法。 Flask 本身不提供缓存功能,但是作为 Flask 核心的 Werkzeug 框架则提供了一个简单的缓存对象 SimpleCache,它将缓存项存放在 Python 解释器的内存中。使用 Simple
MongoDB 是一个文档型数据库,是 NoSQL (not only SQL) 的一种,具有灵活、易扩展等诸多优点,受到许多开发者的青睐。MongoEngine 是一个用来操作 MongoDB 的 ORM 框架,如果你不知道什么是 ORM,可以参考 Flask-SQLAlchemy 一节。在 Flask 中,我们可以直接使用 MongoEngine,也可使用 Flask-MongoEngine
ORM 框架 Web 开发中,一个重要的组成部分便是数据库了。Web 程序中最常用的莫过于关系型数据库了,也称 SQL 数据库。另外,文档数据库(如 mongodb)、键值对数据库(如 redis)近几年也逐渐在 web 开发中流行起来,我们习惯把这两种数据库称为 NoSQL 数据库。 大多数的关系型数据库引擎(比如 MySQL、Postgres 和 SQLite)都有对应的 Python 包。在
给用户发送邮件是 Web 应用中最常见的任务之一,比如用户注册,找回密码等。Python 内置了一个 smtplib 的模块,可以用来发送邮件,这里我们使用 Flask-Mail,是因为它可以和 Flask 集成,让我们更方便地实现此功能。 安装 使用pip安装: $ pip install Flask-Mail 或下载源码安装: $ git clone https://github.com/ma