Flask框架-2-[单聊]: flask-socketio实现websocket的功能,实现单对单聊天

作者:梅琳marlin2024.01.17 12:30浏览量:6

简介:本文将介绍如何使用Flask-SocketIO库实现WebSocket功能,并实现一个简单的单对单聊天应用。我们将通过实例代码来展示如何使用Flask和Flask-SocketIO构建一个基本的聊天室,并解释如何实现单聊功能。

在Flask框架中,我们可以使用Flask-SocketIO库来实现WebSocket功能,从而创建实时、双向的通信通道。在单聊场景中,我们可以利用WebSocket的特性,实现一对一的聊天功能。
首先,确保你已经安装了Flask和Flask-SocketIO库。你可以使用以下命令来安装:
pip install flask flask_socketio
接下来,创建一个名为app.py的文件,并在其中编写以下代码:

  1. from flask import Flask, render_template, request, jsonify
  2. from flask_socketio import SocketIO, emit
  3. app = Flask(__name__)
  4. socketio = SocketIO(app)
  5. # 定义一个字典来存储用户和聊天消息
  6. users = {}
  7. messages = []
  8. # 处理WebSocket连接和消息的函数
  9. @socketio.on('message')
  10. def handle_message(data):
  11. user = data['user']
  12. message = data['message']
  13. emit('reply', {'user': user, 'message': message}, broadcast=False) # 广播消息给其他用户
  14. messages.append({user: message})
  15. emit('update', {'messages': messages}, broadcast=True) # 更新所有用户的聊天列表
  16. # 处理用户连接和断开的函数
  17. @socketio.on('connect')
  18. def handle_connect():
  19. if request.args.get('user') not in users:
  20. users[request.args.get('user')] = len(users) + 1
  21. emit('user count', users)
  22. @socketio.on('disconnect')
  23. def handle_disconnect():
  24. if request.args.get('user') in users:\n

相关文章推荐

发表评论