flask websocket 推送消息
时间: 2023-12-10 12:35:26 浏览: 98
使用Flask-SocketIO可以很方便地实现Flask应用程序中的WebSocket功能。下面是一个简单的例子,演示如何使用Flask-SocketIO在服务器和客户端之间进行实时通信:
1. 首先,需要安装Flask-SocketIO包。可以使用以下命令进行安装:
```shell
pip install flask-socketio
```
2. 在Flask应用程序中导入SocketIO和emit:
```python
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
```
3. 创建Flask应用程序和SocketIO实例:
```python
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
```
4. 在服务器端定义一个事件,用于接收客户端发送的消息并将其广播给所有连接的客户端:
```python
@socketio.on('message')
def handle_message(message):
print('received message: ' + message)
emit('response', {'data': message}, broadcast=True)
```
5. 在客户端中,使用JavaScript代码连接到服务器并发送消息:
```javascript
var socket = io.connect('http://localhost:5000');
socket.on('connect', function() {
socket.send('Hello, server!');
});
socket.on('response', function(data) {
console.log('received response: ' + data.data);
});
```
在上面的代码中,客户端连接到服务器后,发送一条消息“Hello, server!”,服务器接收到消息后,将其广播给所有连接的客户端,并在控制台中输出接收到的消息。
阅读全文