python一个主程序运行过程中会不断输出信息,用websocket将信息实时发送给前端,给出server.py和client.py
时间: 2023-06-26 15:03:53 浏览: 175
下面是一个简单的示例,展示如何使用 Python 的 WebSocket 模块 Flask-SocketIO 实现实时消息推送。其中,server.py 是服务器端代码,client.py 是客户端代码。
server.py:
```python
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('connect')
def test_connect():
print('Client connected')
@socketio.on('disconnect')
def test_disconnect():
print('Client disconnected')
def send_message(text):
socketio.emit('message', {'text': text})
if __name__ == '__main__':
socketio.run(app)
```
client.py:
```python
import websocket
def on_message(ws, message):
print(message)
def on_error(ws, error):
print(error)
def on_close(ws):
print("### closed ###")
def on_open(ws):
print("### open ###")
if __name__ == "__main__":
websocket.enableTrace(True)
ws = websocket.WebSocketApp("ws://localhost:5000/socket.io/",
on_message = on_message,
on_error = on_error,
on_close = on_close)
ws.on_open = on_open
ws.run_forever()
```
在这个示例中,我们使用 Flask-SocketIO 模块实现了 WebSocket 服务器,并在客户端使用了 websocket 模块连接 WebSocket 服务器。在服务器端,我们定义了一个 `send_message` 函数,用于向客户端发送消息。在客户端,我们定义了 `on_message` 函数,用于接收服务器发送的消息。在 `on_open` 函数中,我们连接 WebSocket 服务器,并在 `on_message` 函数中打印接收到的消息。
阅读全文