クライアントからサーバーへの大きなファイル (ほとんどのシーンが 1 GB を超える) のアップロードに関するアプリを実装しました。
- クライアントでは、HTML5 ファイル API を使用し、ファイルをスライスして (1MB/5MB/10MB をテストしました)、WebSocket でアップロードしました。
- サーバーでは、トルネードを websocket サーバーとして使用しました。私たちの顧客はアプレットなどのプラグインの使用を許可しませんでした。また、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 ファイル API を使用するだけです。