Open Rulexec opened 10 years ago
Данная фича переносится из багов в улучшения, вандервафли, а так же в версию 0.*.0. Это реализуемо путём добавления новых методов, которые, к примеру, подписываются на подтверждения сообщений в других сессиях.
Да и вообще клиент вполне может за время закрытия сессии создать новую, начать работать в ней, а пока старая до конца не закрылась — привести там дела в порядок. Благо вполне допустимо иметь дело с несколькими сессиями в одном TCP-соединении, например.
Кроме этого вполне допустимо в новой сессии повторить все мутные запросы. Если они дойдут за время остатка жизни старой (которого не так уж и много), то сервер ещё будет помнить, что их нужно дропнуть, т.к. они уже приходили в новой.
В данный момент если клиент покинул старую мини-сессию, но открыл новую, то он никак не узнает, был бы доставлен пакет с заданным uniqueId, кроме как спросит у RPC-слоя, какое состояние выполнения для него.
Но не исключено состояние гонки, когда пакет с uniqueId'ом придёт после запроса о состоянии исполнения метода.
Возможно добавление отдельного ack'а, подтверждающего приход uniqueId'ов в другой мини-сессии не такой уж и плохой вариант.