python - 使用flask-socketIO怎样讲json格式数据从服务器推送到前端?
高洛峰
高洛峰 2017-04-17 17:19:59
0
2
1024

小弟近日接触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)

客户端网页:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>flask-socketio</title>
</head>
<body>
<h1>Hello World</h1>
<p><span>Only <span id="count"></span>
        left in stock! Order 123now!</span></p>
</body>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>
<script src="http://code.jquery.com/jquery-1.7.1.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf-8">
    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);
  
</script>
</html>
高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
小葫芦

将字符串转换为json啊………………………

阿神

雷雷

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!