我正在尝试在Flask框架下使用JQuery和Python进行长时间轮询。
在PHP中进行了长时间的轮询之后,我尝试以相同的方式进行处理:
具有while(true)循环的脚本/函数,定期检查更改,例如,数据库中每0.5秒更改一次,并在发生更改时返回一些数据。
因此,在我的ini .py文件中,我创建了一个到/ poll的app.route,以供JQuery调用。jQuery向其提供有关客户端当前状态的一些信息,并且poll()函数将其与数据库中当前的状态进行比较。当观察到更改时,循环结束并返回信息。
这是python代码:
@app.route('/poll')
def poll():
client_state = request.args.get("state")
#remove html encoding + whitesapce from client state
html_parser = HTMLParser.HTMLParser()
client_state = html_parser.unescape(client_state)
client_state = "".join(client_state.split())
#poll the database
while True:
time.sleep(0.5)
data = get_data()
json_state = to_json(data)
json_state = "".join(data) #remove whitespa