2017-01-13 9 views
1

大きなデータファイルをアップロードしているnodejsにサーバーがあります。クライアントでangular-file-uploadを使用しています。これは、コールバック関数を使用してアップロードの進捗状況を追跡するのに役立ちます。クライアント上でNodejsサーバーの進行状況を追跡する

アップロードが完了すると、サーバーはデータの操作を開始します(形式の変換とユーザー指定のデータベースへのアップロード)。この進捗状況を、アップロードと同じ種類の方法で、別の進捗バーを開始して追跡したいと思います。

これを行う正しい方法は何ですか?インターネットを通って、私はソケットが行く方法かもしれないことを理解しました。私の角ファイルアップロードは時代遅れになっていますか、これを行う別の方法がありますか?アップロードが完了したときに新しい接続をセットアップするか、アップロード接続を利用して進行状況の情報をクライアントに返しますか?

Socket.ioには、クライアントにメッセージを送信するチャットをセットアップする方法に関するチュートリアルがありますが、これは実際にはもう少し複雑な状況をカバーしていません。

正しい方向のポインタは本当に感謝しています。

答えて

1

進捗状況をリアルタイムで確認したい場合は、ファイルのアップロードが完了したら直ちにソケット接続を開いてサーバー側ロジックの進捗状況に関するデータを取得する必要があります進捗状況が常に更新されています。

しかし、これは効率的な方法で進捗状況を追跡するためにredisのようなデータベースを使用する必要があるため、プロジェクトのアーキテクチャを増やし、メンテナンスの労力を増やします。 socket.ioの偉大なチュートリアル、私の解決策はfirebaseのようなリアルタイムのバックエンドまたはバック&(スペルバック)を使用することです。

ファイルがアップロードされると、バックエンドは現在のプロセスをファイアベースに送り続けます。進捗状況とクライアント側はこれらの変更をリッスンし、角度2ウェイデータバインディングのために変更がUIに自動的に反映されます。

関連する問題