最近在用socketio进行前后端通信时遇到一个问题:前端可以向后台发送数据,但是后台却无法把数据发送到前端。
前端采用socketio 后台使用falsk-socketio
代码具体实现请参考:使用Flask SocketIO实现WebSocket | 风中飞舞
最后发现问题所在:
socketio.emit与emit是不同的,具体可以自己看函数的定义,socketio.emit()是用路由修饰的,而emit()是由socketio.on修饰的。
因此参照上述链接中的代码,应该是;
@socketio.on('my event', namespace='/test')
def test_message(message):
emit('my response', {'data': message['data'])
这里的emit是:
from flask.ext.socketio import SocketIO, emit
而我出错的代码是:
@socketio.on('my event', namespace='/test')
def test_message(message):
socketio.emit('my response', {'data': message['data'])//注意用socketio.on修饰的话直接用上面代码中的emit就可以
一个小错误,搞了一晚上,写个博客以免再犯!