wiki:Akka.HTTP.Client

Akka.HTTP.Client

Akka.HTTP.Client - обычный класс/модуль. Не актор.

Может содержать какие-нибудь врапперы, синглтоны и фектори, если в этом будет смысл

Один актор Akka.HTTP.Client.Actor

Два сообщения:

  • HTTPRequest
  • HTTPResponse

По старту системы создается Akka.HTTP.Client.Actor, который

  • принимает сообщения HTTPRequest (HTTPResponse только отправляет)
  • создает обычный дотнетовский Task<HTTPResponse>
  • отправляет результат таска отправителю через .PipeTo():
HTTPRequest m = message as HTTPRequest;
Task<HTTPResponse> foo = myget(m.url);
foo.PipeTo(Sender);

Клиент биржи

Collector.bitstampUSD.Orderbook - это таким образом актор, принимающий 2 сообщения, Go (пустое) и HTTPResponse:

По приходу Go он:

  • сохраняет Sender
  • отправляет HTTPRequest нашему Akka.HTTP.Client.Actor

По приходу HTTPResponse:

  • переформатирует JSON или формирует JSON c ощибкой
  • отправляет JSON через .Tell() сохранённому отправителю Go

Гирман-сервер

Живёт снаружи акторов. Просто через await bitstampActor.Ask(new Go) шлёт сообщения клиенту-актору, принимает результат и отдает его обратно в гирман.

Last modified 6 years ago Last modified on May 29, 2019, 2:06:31 AM
Note: See TracWiki for help on using the wiki.