【发布时间】:2020-04-23 23:03:32
【问题描述】:
我正在尝试让我的应用程序响应 SSE 服务器发送事件流。流中出现了多种类型的事件,如果我收到的事件的 type 与该 UI 元素相关联,则应用程序的某些部分将更新 。
示例 json 流响应(例如这里,如果我收到心跳,我不想更改 UI):
event:heartbeat
data:{"type":"heartbeat"}
event:gwy
data:{"a":532289,"lastUpdatedDateInMilliseconds":1587490669503,"t":1587490669503,"g":12479,"api":0,"cellSignalStrength":15}
event:gwy
data:{"a":532289,"lastUpdatedDateInMilliseconds":1587490694685,"t":1587490694685,"g":12479,"api":0,"cellSignalStrength":15}
此数据的格式是全局数据变量的子集(事件应替换全局变量的那部分)。
非常感谢任何指针或资源。
【问题讨论】:
-
你打算如何检查是否有新数据?sockets或http请求每个时间段?
-
感谢您的垂询。我有一个我调用一次的 HTTP GET 请求,它返回一个数据流(json 事件,类型为:heartbeat、gwy 等)。
-
有多少页面依赖于这个流?你能提供更多细节吗
-
1 页取决于流。该事件会将 UI 组件的状态更改为 1 种状态或其他状态 - 本质上是“开启”或“关闭”。流可能会影响多个 UI 组件,但一次只能影响一个 - 1 个事件对应于 1 个 UI 元素。因此 JSON 将随流而来,它可能会更新 UI 组件,也可能不会更新,具体取决于该 UI 组件是否属于 json 有效负载
-
好的,所以你应该使用一个流构建器,你指定一个流,监听它,并相应地构建和更新你的 UI,请参阅 flutter.dev 中的文档以查看有关它的示例
标签: flutter dart stream server-sent-events