【问题标题】:SocketIO is not listening to 'on' functionSocketIO 没有监听“on”函数
【发布时间】:2019-05-26 02:57:21
【问题描述】:

我已经尝试了 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 ,连接和断开工作

【问题讨论】:

    标签: sockets flask socket.io flask-socketio


    【解决方案1】:

    您必须使用

    运行 Flask-SocketIO
    python flask_script.py
    

    不是

    flask run
    

    这是为了确保 gevent 正在运行并且能够管理 websockets;否则,您使用 websockets 的任何东西都将不起作用。

    【讨论】:

      猜你喜欢
      • 2020-03-16
      • 2022-01-03
      • 2015-04-25
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 2014-12-05
      相关资源
      最近更新 更多