Привет. А есть смысл использовать однопоточный Токио для веб сервера с веб сокетами вместо мультипоточного с вытекающими mutex, RwLock, etc?
мутексы и рвлоки вам нужны будут если данные между потоками шарить будете, если каждый поток занимается своими данными, то вам мульти поток не страшен)
мутексы и рвлоки вам нужны будут если данные между потоками шарить будете, если каждый поток занимается своими данными, то вам мульти поток не страшен)
Да, есть расшаренная мапка просто с записями сессий.
Да это понятно. Я просто хотел понять насколько сильный оверхед с синхронизацией в мульти потоках, чем просто взять один поток и там держать веб-сокет эхо-сервер грубо говоря
если говорить предметно, то нужен пример того что ты хочешь реализовать
Да просто веб-сокет сервер для открытия терминалов юниксовых в браузере через xtermjs Просто shared мапка с сессиями и пересылка данных между терминалами хостов и браузером Я там уперся в такую штуку, как хранить сокет стрим в мапе, чтобы потом сокет закрывать. Там при создании сокета он мувается (https://github.com/snapview/tokio-tungstenite/blob/master/examples/server.rs#L44) и как мне его в мапку класть, чтобы между потоками можно было писать в стрим и закрывать его.
Используют actix_rt + awc(actix-web-client). async main(). Такой вопрос. Мне внутри main() надо цикл создвать? или оно там неявно в самом этом рантайме зацикливается? задача - простенький клиент который будет работать как демон
Используют actix_rt + awc(actix-web-client). async main(). Такой вопрос. Мне внутри main() надо цикл создвать? или оно там неявно в самом этом рантайме зацикливается? задача - простенький клиент который будет работать как демон
Если у тебя main уже async и все работает значит цикл уже неявно создан.
Если у тебя main уже async и все работает значит цикл уже неявно создан.
Обычно пишут
#[actix_rt::main] async fn main() {
}
Тут макрос неявно вставляет этот цикл.
Не, такого цикла нету. Исходя из доков actix_rt макрос создает отдельный поток и блочит его на исполнение футуры. Т.е код базовой футуры надо зацикливать, выходит, а там уже и дальше просто иерархия футур будет