Что ж, результаты могут возвращаться в любом неопределенном порядке, они асинхронны и подвержены капризам интернета и серверов.
То, что вы можете сделать, это решить проблему так же, как это делает TCPUDP.Вы используете идентификаторы последовательности.
Сохраняйте идентификатор последовательности в рабочем состоянии и увеличивайте его каждый раз, когда отправляете запрос.Когда запросы возвращаются, отметьте их по порядку и обрабатывайте только по мере их поступления. Сохраняйте список того, что было возвращено с данными по порядку, и регулярно проверяйте этот список после каждого обновления.Когда ожидается первый ожидаемый, он должен обработать весь список до первого промежутка.
Имейте в виду, что вы можете потерять запрос, так что подходящее время ожидания, прежде чем игнорировать данный идентификатор последовательности, будет в порядке.