Python 使用Flask向所有在线用户推送消息,而不为每个用户创建线程

Python 使用Flask向所有在线用户推送消息,而不为每个用户创建线程,python,flask,chat,Python,Flask,Chat,假设有一个聊天组。 是否有一种方法可以使用FLASK将特定组的任何成员发送的新消息附加到该组中所有在线用户的html页面 没有:为每个用户创建一个线程,并监视聊天中的最新更新。这是一个示例,代码非常简单。如果你感兴趣,那么你可以进行更多的探索和实验 首先,您需要Flask SocketIO模块,运行下面的命令来安装它 pip install flask-socketio 在本例中,项目目录如下所示: ProjectDirectory | |-> templates | | | |

假设有一个聊天组。 是否有一种方法可以使用FLASK将特定组的任何成员发送的新消息附加到该组中所有在线用户的html页面


没有:为每个用户创建一个线程,并监视聊天中的最新更新。

这是一个示例,代码非常简单。如果你感兴趣,那么你可以进行更多的探索和实验

首先,您需要Flask SocketIO模块,运行下面的命令来安装它

pip install flask-socketio
在本例中,项目目录如下所示:

ProjectDirectory
|
|-> templates
|   |
|   |-> index.html
|
|-> app.py
app.py

从烧瓶导入烧瓶,渲染\u模板
从flask_socketio导入socketio,发射
app=烧瓶(名称)
app.config['SECRET_KEY']='randomSecretKEy@123'
socket=SocketIO(应用程序)
@应用程序路径(“/”)
def index():
返回渲染模板('index.html')
@socket.on('消息')
def消息(数据):
打印(数据)
发出('receive_message',data,broadcast=True)
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
socket.run(应用程序)
index.html


var socket=io();
socket.on('connect',function(){
log('连接到服务器');
});
socket.on('receive_message',函数(msg){
console.log('收到的消息:',消息)
})
函数sendMessage(){
msg=$('#message').val()
socket.emit('message',msg)
}
邮寄
运行Flask应用程序,打开两个浏览器选项卡,并排打开web开发人员工具。一旦打开,您将看到
已连接到服务器
消息已被记录。现在,在一个选项卡中键入一些消息并点击发送按钮,您将看到,消息已在另一个选项卡的控制台中收到

我希望你能从中得到一个方向,这对你有帮助



注意:我再说一遍,这是一个非常基本的例子。当然,你可以添加更多的逻辑和功能,使它更像一个聊天应用程序,但它将超出这个问题的范围。所以,我将把它留给你和你的想象力,在何种程度上你可以学习和接受这一点。您可以阅读模块的文档。

这非常有用。但是,有没有一种方法可以让我在服务器端根据向谁发送消息之类的内容过滤发送消息?是的,也有一种方法可以使用
room
s向特定用户发送消息。这确实很有帮助。谢谢。