sno*_*way 5 python flask socket.io
我正在尝试按照以下方式做一些事情:
from flask import Flask, render_template, redirect, url_for
from flask.ext.socketio import SocketIO
app = Flask(__name__)
socketio = SocketIO(app)
@app.route('/start')
def start():
return render_template('start.html')
@app.route('/new_view')
def new_view():
return render_template('new_view.html')
@socketio.on('change_view')
def change_view(message):
return redirect(url_for('new_view'))
if __name__ == "__main__":
socketio.run(app, host='127.0.0.1', port=8080)
Run Code Online (Sandbox Code Playgroud)
基本上,如果它从客户端获取“change_view”消息,我希望它重定向。现在,change_view()在我单击触发socket.emit('change_view', message)调用的按钮后,它会进入该功能,以便该部分工作。它根本不重定向或进入new_view()函数(即,如果我在new_view()其中放入打印语句,则不会打印)。但它也没有给我任何错误。我是套接字的新手,所以我猜测存在一些根本性的误解。
是的,socket.io 不是这样工作的。您可以发送消息告诉客户端加载新页面。
emit('redirect', {'url': url_for('new_view')})
Run Code Online (Sandbox Code Playgroud)
然后在您的客户端:
socket.on('redirect', function (data) {
window.location = data.url;
});
Run Code Online (Sandbox Code Playgroud)
但是对于这个特定的例子,你为什么需要访问服务器并不清楚。
| 归档时间: |
|
| 查看次数: |
3278 次 |
| 最近记录: |