Python HTTPServer [WinError 10053]请求太多时?

时间:2018-07-10 08:49:02

标签: python-3.x three.js httpserver

运行一个超级简单的Web服务器,在大多数情况下,只需要从第三方脚本的请求中剥离查询信息并返回一些文件即可:

def run(server_class=HTTPServer, handler_class=MyHandler, port=xxx):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print ('Starting httpd...')
httpd.serve_forever()

服务器必须返回的一个对象是HTML页面,该页面然后加载一些javascript,然后加载three.js,然后再从该同一服务器加载大量对象。

可以使用,但是在重新加载1-5次后,通常会导致WinError[10053]并且服务器被锁定!之后,连接将被拒绝或超时。不知道这是由于请求过多还是与Three.js的加载功能的连接有关。

这花费了几个小时,我找不到特定的解决方案,因此我将在下面发布答案。随意鸣叫其他答案

1 个答案:

答案 0 :(得分:0)

通过对服务器/处理程序进行多线程处理,我已经能够处理至少一个用户。可能仍然是吞吐量问题,但这已经足够了:

class ThreadingHTTPServer(socketserver.ThreadingMixIn, HTTPServer):
    pass

def run(server_class=ThreadingHTTPServer, handler_class=MyHandler, port=xxx):
    server_address = ('', port)
    httpd = server_class(server_address, handler_class)
    print ('Starting httpd...')
    httpd.serve_forever()

其他我尝试过/失败的事情:

  • 编辑self.path并调用SimpleHTTPRequestHandler.do_GET(self)//无法更改路径以影响简单处理程序
  • allow_reuse_address =是/否//无效
  • 手动设置close_connection = True //无效
  • 一些标题播放//没有效果

希望这可以节省一个人!