問題タブ [mio]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - タイムアウトでmio TcpStreamから読み取る方法は?
ミオコを使っています。mio::net::tcp::TcpStream
は を実装していないため、複数のスレッド/コルーチン間で a をClone
共有するTcpStream
ことはできないようです (または、可能であれば方法がわかりません。私は Rust を初めて使用します)。したがって、単一の への同時読み取り/書き込みTcpStream
の場合、単一のコルーチンを使用して読み取りと書き込みの両方を行う必要があると想定しました。
受信データの頻度が低い場合に読み取りが無期限にブロックされるのを避けるために、 から読み取るときにタイムアウトを使用する必要があるようTcpStream
です。std::net::TcpStream
これを達成するために持ってset_read_timeout
いますが、に相当するものを見つけることができませんmio::net::tcp::TcpStream
。これについてどうすればいいですか?TcpStream
または、タイムアウトの必要性を回避して、複数のコルーチン間でmio を共有する方法はありますか?
rust - ハッシュマップフィールドにハンドラーへの参照を保存する方法
私は Rust を学んでおり、websocket サーバーを作成しようとしています。ロジックは次のとおりです。WSConnectionFactory は、着信メッセージを処理し、任意のルールに従って他のクライアントに送信する WSHandler を作成します。問題は、そのような動作を実装する方法がわからないことです。
制限: Factory および Handler トレイトのシグネチャは、 ws-rsライブラリによって提供されるため、変更できません。
質問: RefCell/Cell を使用してこれを実装するにはどうすればよいですか?
rust - mioに複数のタイムアウトを登録することはできますか?
mio で TCP サーバーを作成し、複数のタイムアウトを登録しましたが、最後に登録されたタイムアウトのみが発生します。タイムアウトを結合するにはラッパーが必要ですか、それとも mio v0.5 で複数のタイムアウトを登録する他の方法はありますか?