python 很高兴问题_求教python,tornado,comet问题

烙印99

您好,很高兴能帮助您#!/usr/bin/python# -*- coding: utf-8 -*-# Author:se77enimport randomimport timeimport os.pathimport tornado.httpserverimport tornado.ioloopimport tornado.optionsimport tornado.webfrom tornado.options import define, optionsdefine("port", default=8000, help="run on the given port", type=int)class IndexHandler(tornado.web.RequestHandler): def get(self): self.render("index.html")class LongPollingHandler(tornado.web.RequestHandler): ''' 使用asynchronous装饰器使post成为非阻塞方法 ''' @tornado.web.asynchronous def get(self): self.get_data(callback=self.on_finish) def get_data(self, callback): if self.request.connection.stream.closed(): return num = random.randint(1, 100) tornado.ioloop.IOLoop.instance().add_timeout( time.time() + 5, lambda : callback(num) )#间隔5秒回调 def on_finish(self, data): self.write("Server say: %s" %data) self.finish()#调用finish方法断开连接if __name__ == "__main__":# tornado.options.parse_command_line() app = tornado.web.Application( handlers = [(r'/', IndexHandler), (r'/longpolling', LongPollingHandler)], template_path = os.path.join(os.path.dirname(__file__), "template") ) http_server = tornado.httpserver.HTTPServer(app) http_server.listen("8000") tornado.ioloop.IOLoop.instance().start()前端html代码如下: Long Polling Demo #show { border: solid 1px #ccc; padding: 5px; width: 500px; height: 500px; font-size: 11px; overflow: auto; } var updater = { poll: function(){ $.ajax({url: "/longpolling", type: "GET", dataType: "text", success: updater.onSuccess, error: updater.onError}); }, onSuccess: function(data, dataStatus){ try{ $("p").append(data+""); } catch(e){ updater.onError(); return; } interval = window.setTimeout(updater.poll, 0); }, onError: function(){ console.log("Poll error;"); } }; updater.poll(); 你的采纳是我前进的动力,记得好评和采纳,答题不易,互相帮助,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值