Web tarayıcısını Rust, Hyper ve websocket-rs kullanarak yazmak istiyorum. Web sunucusu, numaralı bağlantı noktasında http isteklerini ve websocket isteklerini yönetebilmelidir. Resmi örneği kullandım (async-server.rs
: https://github.com/cyderize/rust-websocket/blob/master/examples/async-server.rs) ve değiştirmeye çalıştım. Benim düşüncem hata işlemeyi değiştirmekti. Müşterinin isteği basit bir http isteği ise, bir hata döndürmeyin, ancak isteği yerine getiren bir geleceği ortaya çıkarın.Websocket ve http sunucusunu aynı bağlantı noktasında çalıştırma (Pas, hiper)
Başka bir soruya dayanarak (How do I handle an error when using rust-websocket so that only that connection fails and not the entire program?) Örneklem hatalarını değiştirdim. Ben takılıp nerede
.map(Some).or_else(|_| -> Result<_,()> {
// SPAWN THE FUTURE
Ok(None)
})
budur: İşte benim yeni kod
.map_err(|InvalidConnection {error, ..}| {
println!("Error:{:?}",error);
return error;
})
olduğunu
:Bu eski kodudur. Örnek kod, upgrade
yapısına erişimim olmadığı için kodumda bulunmayan bir parametre (upgrade.reject()
) bekleyen bir spawn_future
işlevini çağırır. Birkaç şey daha denedim (yani handle.spawn_fn
'u arayarak) fakat derleyici yaptığım şeyi hiç sevmedi. (Ben derleyici hataları bazı yapıştırmak olabilir, ama onlar benim yazının kalitesini artırmak olacağını sanmıyorum.) Burada
sorum geçerli: işleyebilir bir zaman uyumsuz sunucuyu yazmak için önerilen yolu nedir Aynı bağlantı noktasında http istekleri ve websocket istekleri? Yaklaşımım doğruysa:
SPAWN THE FUTURE
hattını doldurmama yardımcı olabilir misiniz? Ek içerik (henüz farketmediyseniz): Ben tamamen Rust acemi oldum.
teşekkür ederiz. Bu belgelere iyi gizlenmişti. Onu bulamazdım. – cruppstahl