通过socketio从服务器向客户端发送消息

时间:2016-12-27 12:23:31

标签: flask socket.io

我将数据发布到服务器并处理服务器上的数据。由于页面重新加载需要一段时间,我想将状态更新发送到客户端并将其显示在div中。类似于"正在处理的第一个文件......","首先完成文件","正在处理的第二个文件" ...等等。

我的第一次尝试:

@app.route('/', methods=["GET", 'POST'])
def main():
    if request.method == 'POST':
        socketio.emit("message", {'data': 42})
        _urls = request.form['url_area'].split("\n")
        lang = request.form['lang']
        image_list = get_images(_urls, lang)
        return render_template('index.html', images=image_list)
    return render_template('index.html')

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/socket.io/1.3.6/socket.io.min.js"></script>
<script type="text/javascript" charset="utf-8">
    var socket = io.connect('http://' + document.domain + ':' + location.port);
    socket.on('connect', function(msg) {
        console.log("connected");
    });
    socket.on('message', function(msg) {
        console.log(msg);
    });

</script>

客户端正确连接。但是,没有任何消息从服务器传递到客户端。

我该如何做?

我看过一些例子,但无法弄清楚我在做什么不同。许多示例仅显示如何发送客户端发送的数据,但我不想(现在)。现在,我只是想从服务器发送消息。

修改

app = Flask(__name__)
app.config['SECRET_KEY'] = 'secret!'
socketio = SocketIO(app)

if __name__ == '__main__':
    socketio.run(app)

0 个答案:

没有答案