私が書いているストリーミングサーバーにlibevを使用したいと思います。
これがすべてが機能することになっている方法です:
- クライアントがサーバーへのTCPソケット接続を開きます
- サーバーが接続を受信する
- クライアントは希望する画像のリストを送信します
- サーバーはリクエストを読み取ります
- サーバーはすべての画像をループします
- サーバーはNASから画像を読み取ります
- サーバーは画像ファイルのメタデータを処理します
- サーバーは画像データをクライアントに送信します
libev I / Oイベント(内部でepoll)を使用してソケットから読み書きできるサンプルコードを見つけました。しかし、NASからの読み取りと処理の処理方法がわかりません。これには時間がかかる場合があります。そして、これが起こっている間、私はサーバーをブロックしたくありません。
これは別のスレッドで実行し、スレッドに画像データをクライアントに返送させる必要がありますか?
スレッドプールの使用を計画していました。しかし、おそらくlibevはブロックせずに処理ステップをサポートできますか?
任意のアイデアや助けをいただければ幸いです!