Очередь будущего в дартс - PullRequest
0 голосов
/ 05 октября 2018

Я хочу внедрить систему чата.

Я застрял в точке, где пользователь действительно быстро отправляет несколько сообщений.Хотя все сообщения доходят до сервера, но в любом порядке.

Поэтому я подумал о реализации очереди, в которой каждое сообщение должно

  1. Сначала помещаться в очередь

  2. Дождаться своей очереди

  3. Сделайте почтовый запрос по очереди

  4. Подождите около 5 секунд ответа от сервера

  5. Если ответ приходит в течение определенного периода времени, и статус в порядке, сообщение отправлено, иначе отправка сообщения не удалась.

  6. В любом случае из пункта 5 сообщение должно быть удалено и следующее сообщениедолжен быть предоставлен шанс.

Теперь главная проблема в том, что может быть несколько очередей для каждого руководителя чата или пользователя, с которым мы разговариваем.Как я это реализую?Я действительно плохо знаком с дротиком и трепетом.Пожалуйста помоги.Спасибо!

1 Ответ

0 голосов
/ 08 октября 2018

Звучит так, как будто вы описываете Stream - последовательность асинхронных событий, которые упорядочены.

https://www.dartlang.org/guides/language/language-tour#handling-streams https://www.dartlang.org/guides/libraries/library-tour#stream

Создать StreamController,и добавляйте в него сообщения по мере их поступления:

var controller = StreamController<String>();
// whenever you have a message
controller.add(message);

Прослушивайте этот поток и загрузите сообщения:

await for(var messsage in controller.messages) {
  await uploadMessage(message);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...