我正在尝试编写一个客户端,它打开与服务器的 socket.io 连接,然后使用从服务器通过套接字发送的更新数字不断地重新渲染屏幕。我无法获取要更新的号码。“速度”值保持在 10。有什么问题?- 显然是我理解的一个非常基本的错误。谢谢!
客户端代码:
import React from 'react';
import {CircleGauge} from 'react-launch-gauge';
import io from 'socket.io-client';
class App extends React.Component {
constructor(props, context) {
super(props, context)
this.state = {
speed: 10
};
}
componentDidMount() {
const socket = io.connect('http://localhost:5000');
socket.on( 'data update', data => this.setState({speed: data}));
console.log("got the speed: " + this.state.speed);
}
render() {
return (
<div>
<p> The velocity received is: {this.state.speed} </p>
</div>
);
}
}
export default App;
服务器代码:
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
import time
sendData = False;
app = Flask(__name__)
socketio = SocketIO(app)
@socketio.on('connect')
def dataSent():
print('they connected*************')
for i in range(20,100):
emit('data update', i)
time.sleep(1)
print(i)
if __name__ == '__main__':
socketio.run(app, debug = True)