私のnode.jsサーバーは、アップロードされたファイルに対して特定の操作を実行します。進行状況をほぼリアルタイムでクライアントに反映させたいと思います。この操作は約30秒かかります-1分で完了します。
理想的には、ファイルのアップロード時に、クライアントはファイルに対するサーバー操作の進行状況を監視できるようになります。
通常のポーリング、長いポーリングを実行するか、WebSocketを介してサーバーに接続することができますが、これらはすべて、30秒から1分の進行状況インジケーターの設定がかなり複雑になるようです。
より良い方法はありますか?
これはsocket.ioで行います。より良い方法が利用できるかもしれませんが、socket.ioは比較的簡単に構成できます。
Express.jsを使用していますか?その場合は、構成の詳細についてExpressに固有のセクションを確認してください。構成したら、次のことを行います。
サーバー上で、新しいステータスを発行する必要があります
socket.emit('status','aok!');
クライアントでは、サーバーからの新しいステータスをリッスンする必要があります
socket.on('status', function (msg) {
console.log(msg);
//Put code here to update the page!
});
あなたが考慮したいと思うかもしれない何かは、心拍時間を調整することです。基本的に、サーバーはクライアントに頻繁にpingを実行して、クライアントがまだ接続されているかどうかを確認します。デフォルトでは、これは25秒ごとに発生し、60秒後に応答なしでタイムアウトが発生すると思います。ハートビート間の時間を長くしたり、ハートビートを完全に無効にしたりすることもできます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加