问题描述
我正在使用以下代码作为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 (将#修改为@)