Akka Actor Поиск и трансляция событий

У меня есть сценарий, в котором у меня работает группа актеров Akka, каждый из которых представляет устройство IoT. У меня есть веб-приложение, основанное на Play, внутри которого эти Актеры работают и подключены к этим устройствам IoT.

Теперь я хочу показать сигналы от актеров во внешний мир с помощью конечной точки WebSocket. У каждого из актеров есть своего рода механизм, с помощью которого я могу запросить последний статус сигнала.

Моя идея состоит в том, чтобы сделать следующее:

  1. Добавьте конечную точку WebSocket в мой контроллер, который ожидает идентификатор устройства IoT, для которого ему нужны сигналы. В этом контроллере я сделаю выбор актера, чтобы получить экземпляр актера, который соответствует идентификатору переданного устройства IoT.

  2. Используйте ActorRef, полученный на шаге 1, и создайте экземпляр WebSocketActor

  3. В этом WebSocketActor я создам экземпляр Monix Observable, который будет через регулярные промежутки времени использовать actorRef и запрашивать у него сигналы.

  4. Как только я получу эти сигналы, я передам их конечной точке WebSocket.

Теперь мой вопрос:

  1. Что произойдет, скажем, если клиент открыл поток WebSocket и через некоторое время Actor, представляющий устройство IoT, мертв. Я, вероятно, должен справиться с этой ситуацией в моем WebSocketActor. Но как это будет выглядеть?

  2. Если Actor, представляющий устройство IoT, возвращается живым (при условии, что у меня настроен какой-то супервизор), могу ли я продолжить обработку клиента, открывшего сокетное соединение до того, как Actor был мертв? Я имею в виду, нужно ли клиенту как-то закрыть и снова открыть соединение?

Пожалуйста, предложения?

1 ответ

Решение

Если вы хотите увидеть пример интеграции Akka актеры + Monix, связывающийся через WebSocket, смотрите не дальше, чем проект monix-sample.

Код обрабатывает сбой сети. Если вы загрузите этот образец в браузер, отключите сеть, и вы увидите, что он восстановится, как только подключение снова будет включено.

Другие вопросы по тегам