小弟近日接触flask框架的socketio模块,用以下代码测试了下效果,发现字符串信息能够从服务器异步加载到客户端并显示在网页上,但是换成json类型的就不行,浏览器会报错
Uncaught TypeError: Cannot read property 'num' of undefined
说是属性没有定义,不知怎么解决,请各位大侠帮忙看下,代码如下:
服务器端:
from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret'
socketio = SocketIO(app)
@app.route('/')
def index():
return render_template('index.html')
@socketio.on('my event', namespace='/test')
def handle_my_custom_event(message):
print 'receive'
emit('connect', {'num': 5, 'kind': 'apple', 'message': message['data']})
if __name__ == '__main__':
socketio.run(app)
客户端网页:
flask-socketio
Hello World
Only
left in stock! Order 123now!
var namespace = '/test'
var socket = io.connect('http://' + document.domain + ':' + location.port + namespace);
socket.on('connect', function(msg) {
$('#count').html(msg.num)});
function a(){socket.emit('my event', {data: 'I\'m connected!'})};
setTimeout(a, 3000);