安装flask-sockets很容易:
pip install flask-socketio
注意flask-socketio依赖gevent库,目前它仅可以在python2上运行(译者注:python3.6测试也可以)。gevent很快也会对python3支持。
下面是一个flask-socketio在flask应用上的实现例子:
from flask import flask, request, jsonify,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('test.html')
#触发事件my event:回复只发送此连接
@socketio.on('my_event', namespace='/chat')
def test_message(message):
print(message)
emit('my_response', {'data': message['data']})
#触发事件my broadcast event::回复所有链接(广播)
@socketio.on('my_broadcast event', namespace='/chat')
def test_message(message):
print(message)
emit('my_response', {'data': message['data']}, broadcast=true)
##################################################################
#自动连接和自动断开触发
@socketio.on('connect', namespace='/chat')
def test_connect():
print("连接到来")
emit('my_response', {'data': 'connected'})
@socketio.on('disconnect', namespace='/chat')
def test_disconnect():
print("连接断开")
print('client disconnected')
if __name__ ==