【问题标题】:Queue of Future in dart飞镖中的未来队列
【发布时间】:2019-03-11 07:26:46
【问题描述】:

我想实现一个聊天系统。

我被困在用户非常快速地发送多个消息的地步。尽管所有消息都到达服务器,但以任何顺序。

所以我想实现一个队列,每条消息都应该在其中

  1. 先入队

  2. 等待时机

  3. 轮到发帖请求

  4. 等待服务器响应大约 5 秒

  5. 如果响应在时间范围内到达并且状态为OK,则消息发送,否则消息发送失败。

  6. 在第 5 点的任何情况下,消息都应出队,并给予下一条消息机会。

现在,主要问题是,每个聊天头或我们正在与之交谈的用户可能有多个队列。我将如何实施?我对飞镖和扑扑真的很陌生。请帮忙。谢谢!

【问题讨论】:

    标签: asynchronous dart queue flutter chat


    【解决方案1】:

    听起来您在描述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);
    }
    

    【讨论】:

      猜你喜欢
      • 2020-08-12
      • 2019-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-25
      • 2018-10-15
      • 1970-01-01
      相关资源
      最近更新 更多