flask实现一个支持跨域访问的websocket例子并给出客户端接收的例子
服务器端代码:
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app, cors_allowed_origins='*')
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('connect')
def test_connect():
emit('my_response', {'data': 'Connected'})
@socketio.on('disconnect')
def test_disconnect():
print('Client disconnected')
@socketio.on('my_event')
def handle_my_custom_event(json):
print('Received message: ' + str(json))
socketio.emit('my_response', json)
if __name__ == '__main__':
socketio.run(app)
客户端代码:
<!doctype html>
<html>
<head>
<title>Flask-SocketIO Example</title>
<script src="https://cdn.socket.io/4.0.1/socket.io.min.js" integrity="sha384-9sKsRZ1s/6Lirg6TfT6U2jKU3q6l2Ssu9XWl1clrvDfHFi6SoE4n4bF4YhYm4KzL" crossorigin="anonymous"></script>
<script src="//code.jquery.com/jquery-1.11.1.js"></script>
</head>
<body>
<script type="text/javascript">
var socket = io('http://localhost:5000');
socket.on('connect', function() {
socket.emit('my_event', {data: 'Connected'});
});
socket.on('my_response', function(msg) {
console.log(msg.data);
});
</script>
</body>
</html>
原文地址: https://www.cveoy.top/t/topic/bcBz 著作权归作者所有。请勿转载和采集!