Flask socketio服务器未收到消息大小48.759 KB

问题描述

我正在使用以下代码作为socketio服务器,以接收来自客户端和进程的消息。

服务器代码

    from flask import Flask,render_template
    from flask_socketio import SocketIO
    from engineio.payload import Payload
    from kafka import KafkaProducer
    import time
    import eventlet
    #eventlet.monkey_patch()
    app = Flask(__name__,template_folder='template')
    app.config['SECRET_KEY'] = 'vnkdjnfjknfl1232#'
    Payload.max_decode_packets = 100
    socketio = SocketIO(app,cors_allowed_origins="*",async_mode='eventlet')
    topic = "drone-data"
    
    @app.route('/')
    def sessions():
        return render_template('session.html')
    
    def messageReceived(methods=['GET','POST']):
        print('message was received!!!')
    
    @socketio.on('image_and_telemetric_event')
    def handle_image_and_telemetric_event(data):
        print('received data from drone',time.strftime("%H:%M:%s"))
    
    
    if __name__ == '__main__':
        socketio.run(app,debug=True,host='0.0.0.0',port=1936)

我从客户端发送的数据大小为“ 48759”,即48.759 KB。服务器代码接收到的第一条消息有10秒的延迟。在第一条消息之后,没有消息被消耗,甚至客户端也继续发送该消息。

客户端代码为:

    import socketio
    sio = socketio.Client()
    sio.connect('http://xx.xx.xx.xx:1936/')
    
    while True:
        # read video frames
        check,frame = video.read()
        #print("Size of the Original frame",sys.getsizeof(frame))
        scale_percent = 23 # percent of original size
        width = int(frame.shape[1] * scale_percent / 100)
        height = int(frame.shape[0] * scale_percent / 100)
        dim = (width,height)
        # resize image
        resized = cv2.resize(frame,dim,interpolation = cv2.INTER_CUBIC)
        responseData = {"timeStamp" :time.time(),"frame" : resized}
        data_string = pickle.dumps(responseData)      
        sio.emit('image_and_telemetric_event',data_string)

服务器代码在AWS ec2实例中运行,我正在从本地计算机发送图像数据。 请帮助我解决此问题

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)