这篇博客展示了如何使用Flask和Flask-SocketIO构建一个简单的实时聊天应用。应用支持WebSocket通信,能够存储和广播聊天消息。
依赖库
- Flask
- Flask-SocketIO
- os
好的,让我们一步一步来解析这个代码片段,并给出相关的扩展和说明。
代码解析
-
导入库和初始化应用
from flask import Flask, render_template, request, jsonify from flask_socketio import SocketIO, send import os app = Flask(__name__) app.config['SECRET_KEY'] = 'secret!' socketio = SocketIO(app)- Flask: 一个轻量级的Web框架,用于构建Web应用。
- Flask-SocketIO: 一个扩展,允许Flask应用支持WebSocket。
- os: 提供了一种便携式的方式使用操作系统相关的功能。
- app.config[‘SECRET_KEY’]: 设置Flask应用的密钥,用于会话管理和其他安全相关的需求。
- socketio = SocketIO(app): 初始化SocketIO对象,并将其与Flask应用关联。
-
存储聊天记录
messages = []- messages: 用于存储聊天记录的列表。
-
定义路由和视图函数
@app.route('/') def index(): return render_template('index.html') @app.route('/messages') def get_messages(): return jsonify(messages)- @app.route(‘/’): 定义根路径的路由,返回
index.html模板。 - @app.route(‘/messages’): 定义
/messages路径的路由,返回聊天记录的JSON格式。
- @app.route(‘/’): 定义根路径的路由,返回
-
处理SocketIO消息
@socketio.on('message') def handleMessage(msg): if msg != 'User has connected!': print('Message: ' + msg) messages.append(msg) send(msg, broadcast=True) else: print('用户已连接!')- @socketio.on(‘message’): 监听
message事件。 - handleMessage(msg): 处理接收到的消息,如果消息不是
User has connected!,则将其打印、存储并广播给所有连接的客户端。
- @socketio.on(‘message’): 监听
-
运行应用
if _

6445

被折叠的 条评论
为什么被折叠?



