Как получить обратный вызов, когда актер уничтожен SSE - PullRequest
0 голосов
/ 02 апреля 2019

Я пытаюсь реализовать ServerSendEvents в Akka Streams.Я использовал актера в качестве источника для отправки сообщений клиенту. Таким образом, когда клиент закрывает вкладку, соединение get разрушается и, следовательно, Actor (как источник) также будет уничтожен. Но я не могу найти способ зарегистрировать обратный вызов, когда этот актер или источник уничтожен

Можно ли как-нибудь получить событие или обратный вызов, так как я хочу обновить некоторые настройки в БД при отключении пользователя?

Я пытался с EventStream.subscribe, но не могу понять, как получить PostStop или прекратить событие.

Моя инициализация источника выглядит следующим образом

Pair<ActorRef,Source<String,NotUsed>> sourcePair  = Source.<String>actorRef(100,OverflowStrategy.fail()).preMaterialize(materializer);

Из этой пары я передал Source для eventStreamFlow для преобразования для отправки сообщений клиенту и actorRef для отправки сообщений из любого места

Я ожидаю что-то вроде метода PostStop (), как в актере. Так как источник создает актера, я даже не могу установить свою собственную и думал об использовании Actor.SourcePublisher api, но так как он устарел, оставил его

...