Flask-SocketIO 项目地址:https://github.com/miguelgrinberg/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.on('my event', namespace='/test'))
def test_message(message):
emit('my response', {'data': 'got it!'})
@socketio.on('my broadcast event', namespace='/test')
def test_message(message):
emit('my response', {'data': message['data']}, broadcast=True)
@socketio.on('connect', namespace='/test')
def test_connect():
emit('my response', {'data': 'Connected'})
@socketio.on('disconnect', namespace='/test')
def test_disconnect():
print('Client disconnected')
if __name__ == '__main__':
socketio.run(app)
客户端程序
$(document).ready(function(){
let namespace = '/test';
let socket = io.connect(location.protocol + '//' + document.domain + ':' + location.port + namespace);
socket.on('my response', function(msg) {
console.debug('data receive', msg);
$('#log').append('<p>Received: ' + msg.data + '</p>');
});
$('form#emit').submit(function(event) {
console.debug('my event');
socket.emit('my event', {data: $('#emit_data').val()});
return false;
});
$('form#broadcast').submit(function(event) {
console.debug('my broadcast event');
socket.emit('my broadcast event', {data: $('#broadcast_data').val()});
return false;
});
});
参考文档:
https://blog.csdn.net/weixin_36380516/article/details/80418354
https://blog.csdn.net/u013793383/article/details/72848252
版权属于:wshon
本文链接:https://blog.wshon.com/2018/08/flask-socketio.html
转载时须注明出处及本声明
最新回复