我已经尝试了6个多小时。我正在使用Flask-SocketIO并做出本机反应,以尝试使测试设置正常工作。似乎某些听众无法正常工作。这是我的代码:
SERVER SIDE PYTHON FILE (running on flask development server)
@socketio.on('connect')
def connect():
print('listening to connect')
@socketio.on('emission')
def emission(data):
print('listen to emission')
message = data['hello']
emit('emission', message, broadcast=True)
CLIENT SIDE REACT NATIVE
import io from 'socket.io-client/dist/socket.io';
socket = null
export default class trial extends Component {
constructor(props) {
super(props)
this.state = {
returned:'',
}
}
componentDidMount() {
console.log('test')
}
click() {
//connect
socket = io.connect('http://127.0.0.1:5000', {transports:
["websocket"]} );
socket.on('emission', (data) => {
this.setState({returned:data})
console.log('emission was emitted by someone and sent', data);
});
}
click2() {
socket.disconnect()
}
click3() {
console.log('emission')
socket.emit('emission', {hello: 'emitting message to server'});
}
我正在尝试收听连接,但成功了,Flask开发服务器会打印出“监听连接”
然后,我尝试收听“发射”,向其发送消息,然后将其发送回去。这部分将无法工作,并且没有任何内容可打印到开发服务器。
我已经尝试过socket.io.on,连接和断开工作
答案 0 :(得分:0)
您必须使用
运行Flask-SocketIOpython flask_script.py
不是
flask run
这是为了确保gevent正在运行并能够管理websocket;否则,您使用websockets的任何东西都将无法工作。