Size: a a a

RU Rust GameDev — русскоговорящее сообщество

2020 March 06

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Там потом из параметров вытаскивается кому этот ответ предназначен
источник

A

Adv0cat in RU Rust GameDev — русскоговорящее сообщество
Ну на хуку делаете отдельного актора, и общаетесь с этим актором))
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
То есть запрос слать самому а ответ с хука получать от актора?
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Leaky abstraction
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
А так я и запрос посылаю через актора, и ответ с хука получаю как let response = service_addr.send(Request).await
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Хотя response может вернуться и через несколько минут
источник

A

Adv0cat in RU Rust GameDev — русскоговорящее сообщество
Roman
То есть запрос слать самому а ответ с хука получать от актора?
Скорее я имел ввиду, что вы при старте актикса создаете одного актора, который отвечает за общение хуки, и вся логика касатлеьно хука находится в нем. Вам нужно дернуть хук - запросили у актора результат хуки, а уже сам этот актор разрулит когда и кому что ответить
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Ну у меня почти так же и есть. Только этот актор и запрос по HTTP на внешку шлет, и он же ответ с хука сует куда надо
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Так его и мокнуть проще.
источник

A

Adv0cat in RU Rust GameDev — русскоговорящее сообщество
Ну да, но тогда не понимаю зачем фасад?)
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Это он и есть
источник

A

Adv0cat in RU Rust GameDev — русскоговорящее сообщество
Ааа... просто в вашем описании помимо хука вы что-то еще делаете
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Так и есть. Шлю запрос и жду ответа на хук (колбэк)
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
А в акторе с бизнес-логикой остается просто let resp = service.send(req).await где service это актор-фасад который я описываю
источник

A

Adv0cat in RU Rust GameDev — русскоговорящее сообщество
А, я понял, вы вместо того, чтобы при реквесте сделать последовательность футур, например одна делает http запрос на внешнее апи, вторая футура ждет ответ от актора отправляющего хуки, а после резолва всех футур отдавать response, сделали это все в одном акторе
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Именно, что б абстрагировать логику работы с внешним сервисом
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Ну внутри того актора все футурами обмазано, конечно
источник

A

Adv0cat in RU Rust GameDev — русскоговорящее сообщество
Ну тогда не понимаю, чем вас смущает send?)))
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Ну вроде номр. Но вдруг так не идеоматично и есть подводные камни такого подхода
источник

R

Roman in RU Rust GameDev — русскоговорящее сообщество
Просто семантически получается, что addr.send(request) и addr.do_send((request, ctx.address()) изоморфны
источник