温馨提示×

Flask中怎么实现WebSocket

小亿
101
2024-05-10 19:45:00
栏目: 编程语言

在Flask中实现WebSocket可以使用Flask-SocketIO扩展。Flask-SocketIO是一个基于Socket.IO的实时Web应用程序框架,可以轻松地在Flask应用程序中添加WebSocket功能。

以下是一个简单的示例代码,演示如何在Flask应用程序中使用Flask-SocketIO实现WebSocket:

from flask import Flask, render_template
from flask_socketio import SocketIO

app = Flask(__name__)
socketio = SocketIO(app)

@app.route('/')
def index():
    return render_template('index.html')

@socketio.on('message')
def handle_message(message):
    print('received message: ' + message)
    socketio.send(message)

if __name__ == '__main__':
    socketio.run(app, debug=True)

在上面的代码中,我们首先创建了一个Flask应用程序并初始化SocketIO对象。然后我们定义了一个路由处理器来渲染一个简单的HTML模板。最后,我们使用@socketio.on装饰器来定义一个处理消息的函数,在接收到客户端发送过来的消息后,会将消息原样发送回去。

在HTML模板中,你可以使用Socket.IO的JS客户端库来连接到WebSocket服务器。以下是一个简单的HTML模板示例:

<!DOCTYPE html>
<html>
<head>
    <title>WebSocket Example</title>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.2.0/socket.io.js"></script>
    <script>
        var socket = io();

        socket.on('connect', function() {
            console.log('Connected to the server');
            socket.send('Hello, server!');
        });

        socket.on('message', function(message) {
            console.log('Received message: ' + message);
        });
    </script>
</head>
<body>
    <h1>WebSocket Example</h1>
</body>
</html>

在上面的HTML模板中,我们首先引入Socket.IO的JS客户端库,然后创建一个新的Socket.IO实例,并监听connect事件来发送一条消息给服务器。然后我们监听message事件来处理服务器发送过来的消息。

通过Flask-SocketIO扩展,你可以轻松地实现WebSocket功能,并与服务器实时通信。

0