2

我已经实现了一个关于从客户端上传大文件(大多数场景超过 1 GB)到服务器的应用程序。

  1. 在客户端,我使用 HTML5 File API,将文件切片(我测试过 1MB/5MB/10MB)并通过 WebSocket 上传。
  2. 在服务器中使用 tornado 作为 websocket 服务器。我们的客户不允许使用applet之类的插件,而且http-upload在我们的场景中也不合适,所以我必须选择HTML5和websocket。

我的问题是这个过程太慢了。以传输一个 40 MB 的文件为例,大约需要 40 秒。

  • 在客户端和服务器中处理数据(编码、解码等)大约需要 5 秒。
  • 从 websocket 客户端传输数据到 websocet 服务器大约需要 35 秒。

谁能告诉我有什么问题?

我的服务器端代码使用了 python-tornado,非常简单:

application = tornado.web.Application([(r'/litevirt-websocket/realtime/',RealtimeHandler),],**settings)
http_server = tornado.httpserver.HTTPServer(application)
http_server.listen(8888)
tornado.ioloop.IOLoop.instance().start()

我的客户端代码只使用了标准的 HTML5 File API,这里不需要附加。

4

0 回答 0