Size: a a a

2021 May 18

ph

pl 🦑 hk in Rust Async
источник

П

Пух in Rust Async
источник

П

Пух in Rust Async
Но я не уверен что оно поэтому может broken pipe кидать
источник

KS

Kristina Ste in Rust Async
Хм, ок, спасибо, попробую. Я правильно  понимаю, что try_read блочит выполнение, когда нет входящего стрима, а read не блочит?
источник

ph

pl 🦑 hk in Rust Async
неправильно
try_read не блочит ничего
read "блочит" футуру
источник

П

Пух in Rust Async
try_read это типа как руками poll дергать?
источник

MB

Mikail Bagishov in Rust Async
Ну да, но тут тебя даже не уведомят, что снова можно читать
источник

KS

Kristina Ste in Rust Async
Так, я поменяла на read  и разобралась, почему был broken pipe. Оказывается, я неправильно парсила реквест, теперь через json все хорошо. Но только вот все равно клиент не лупается, один раз проходит loop и дальше отключается (если использовать tokio::spawn) или просто проходит один раз и замирает (если просто loop).
источник

KS

Kristina Ste in Rust Async
источник

D

Denis in Rust Async
а зачем нужен вшений tokio::spawn(async move { ?
источник

KS

Kristina Ste in Rust Async
На стак оверфлоу для постоянного клиента пишут использовать loop_fn из futures, но он уже deprecated.
источник

D

Denis in Rust Async
спавнить нужно обработку каждого клиента, а приём соединение делать во внешнем цикле
источник

D

Denis in Rust Async
а, это не сервер, а клиент
источник

D

Denis in Rust Async
в общем, spawn тут точно не нужен
источник

D

Denis in Rust Async
получается, что футура спавнится, но после этого приложение тут же завершается
источник

KS

Kristina Ste in Rust Async
Ок, поняла. Без spawn все равно не работает. По сути, я хочу, чтобы постоянно в цикле сначала чекалось наличие входных сообщений, если они есть, то отправляем на апи. И после чекаем на наличие сообщений на апи, если они есть, то пишем в стрим. Но почему-то после первого прохода клиент замирает и ничего не делает.
источник

D

Denis in Rust Async
а на каком месте замирает?
источник

D

Denis in Rust Async
можно на худой конец просто принты расставить :)
источник

ph

pl 🦑 hk in Rust Async
пахнет select'ом
источник

KS

Kristina Ste in Rust Async
После того, как получил первое сообщение в стриме, отправил гет и получил пустой ответ, в 85 строке, хотя там по идее дальше continue, должен начать очередной луп
источник