栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何用Python实现Comet服务器端?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何用Python实现Comet服务器端?

首先,我根本不是异步专家,我只研究了一次该主题。恕我直言,如果您使用的是XAMPP,那么您就失去了进行长时间轮询的可能性,因为Apache为每个请求使用线程/进程(取决于配置)。

您需要的是非阻塞式Web服务器,例如Tornado,它可以将请求分为两部分,其中第二部分在某个事件时触发,但同时服务器可以接受后续的入站请求。

Tornado文档/许可证/中的示例:

class MainHandler(tornado.web.RequestHandler):    @tornado.web.asynchronous    def get(self):        http = tornado.httpclient.AsyncHTTPClient()        http.fetch("http://friendfeed-api.com/v2/feed/bret",    callback=self.async_callback(self.on_response))    def on_response(self, response):        if response.error: raise tornado.web.HTTPError(500)        json = tornado.escape.json_depre(response.body)        self.write("Fetched " + str(len(json["entries"])) + " entries "        "from the FriendFeed API")        self.finish()

-据我所知,在Apache下这是不可能的-在fetch中,获取是请求处理程序的常规部分,当然会阻塞直到完成为止-因此,最终的结果是冻结线程或进程。

另一个著名的在Python中执行非阻塞服务的库是Twisted,但是我对其了解不多,只是它还能够帮助您仅使用一个线程/进程来处理许多连接。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/516886.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号