启动使用WebSocket的Python Flask应用程序需要使用Flask-SocketIO
扩展。这个扩展使得在Flask应用中使用WebSocket变得相当简单。以下是一个简单的示例代码,展示如何在Flask应用中启用WebSocket:
首先,确保你已经安装了Flask
和Flask-SocketIO
库。你可以通过以下命令来安装它们:
bashpip install Flask Flask-SocketIO
然后,创建一个名为app.py
的Python文件,并将以下代码添加到文件中:
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'your_secret_key'
socketio = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('connect')
def handle_connect():
print('Client connected')
emit('server_response', {'data': 'Connected'})
@socketio.on('disconnect')
def handle_disconnect():
print('Client disconnected')
if __name__ == '__main__':
socketio.run(app, debug=True)
在上面的代码中,我们导入了Flask
和Flask-SocketIO
,创建了一个Flask应用,并初始化了一个SocketIO
实例。
这里还有一个简单的HTML文件,我们将其保存为templates/index.html
:
<!DOCTYPE html>
<html>
<head>
<title>WebSocket Example</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js"></script>
<script type="text/javascript">
var socket = io.connect('http://' + document.domain + ':' + location.port);
socket.on('connect', function() {
console.log('Connected to server');
});
socket.on('server_response', function(data) {
console.log('Received data from server:', data.data);
});
socket.on('disconnect', function() {
console.log('Disconnected from server');
});
</script>
</head>
<body>
<h1>WebSocket Example</h1>
</body>
</html>
在这个示例中,我们使用JavaScript中的Socket.IO客户端库来建立与服务器的WebSocket连接,并处理来自服务器的事件。
最后,在终端中运行以下命令来启动Flask应用程序:
bashpython app.py
这将启动一个WebSocket服务器,并监听在默认的http://127.0.0.1:5000/
地址上。当你在浏览器中访问该地址时,你将看到"WebSocket Example"的标题,并且你可以在浏览器的开发者控制台中看到连接和数据接收的日志。