问题描述
我有一个Flask应用程序,该应用程序通过带有emit的websocket发送数据。
我的Python代码如下所示。我希望在某些情况下可以在AnotherClass中触发发射。
class MainClass:
def __init__(self):
app = Flask(__name__)
app.secret_key = 'any random string'
self.socketio = SocketIO(app,logger=True,binary=True,engineio_logger=True,always_connect=True,async_mode='eventlet')
self.socketio.init_app(app,cors_allowed_origins='*')
self.socketio.on_event('on-record',self.record,namespace='/audio')
self.AC = AnotherClass(socketio=self.socketio)
def run_app(self):
self.socketio.run(self.app,debug=True,port=8000)
def record(self,some_other_data):
# This function gets triggered when client emit
# I inserted the following emit to test if this works
self.socketio.emit('send-data',{'data': data},namespace='/audio')
class AnotherClass:
def __init__(self,socketio):
self.socketio = socketio
def send_data(self,data):
self.socketio.emit('send-data',namespace='/audio')
当我从AnotherClass.send_data触发发射函数时,我得到以下日志,该消息说发射有效并发送数据,但是,客户端应用程序未接收到数据。相反,在MainClass.record中,相同的发射工作原理是当客户端发出某些东西时触发该事件。 (我插入了generate进行测试,在这种情况下可以正常工作,理想情况下,它不应处于记录功能中。)
cedb89204e80438da86361a97f6f1bac: Sending packet MESSAGE data 51-/audio,["send-data",{"data":{"_placeholder":true,"num":0}}]. cedb89204e80438da86361a97f6f1bac: Sending packet MESSAGE data <binary>
这是从上面的Python脚本接收发射的JavaScript代码。
var socketio = io.connect('0.0.0.0:8000' + '/audio',{transports: ['websocket']});
socketio.on("send-data",function(data) {
// Log when client receives the data from server-side
console.log("Data received");
}
})
有人可以给我任何关于我做错事情的见解吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)