我将在概念上参考“推”和“轮询”流,以帮助描述我问题的目标,即“*创建一个模拟Dart的stdin流的数据流行为的推送数据流*”
“民意测验”:在我的前一个问题中,Menzoni的回答是“被调查”流的一个很好的例子。流总是被启动,并从Dart控制台应用程序请求数据到本机扩展。请求被满足,一个响应返回到应用程序。根据我的经验,这是典型的Dart流使用。
“推”:从外部源到达的数据向下推到控制台应用程序。数据来源和传输技术并不重要,它可以是stdin键盘/鼠标事件、PLC中断、数据库异步通知等。
我将使用stdin流来说明这个例子,这是我试图实现的数据流的一个很好的例子。虚拟键代码/ in形式的数据到达本机扩展,缓冲,然后需要“推送”(发送/张贴)到Dart应用程序,而不需要从应用程序中对数据进行任何拉/轮询请求。这就是我试图在我的本地扩展的自定义流中实现的目标!
Dart控制台应用程序伪代码:
Stream<List<int>> virtKeyCodes = NativeCreatePushedStream_Keycodes();
virtKeyCodes.listen(processInts);
void processInts(List<int> kbinput) {
print("processInts: found ${kbinput.length} kbinput chars");
for (int i = 0; i < kbinput.length; i++) {
print("...kbinput:${kbinput[i]}");
}
}本机扩展伪代码(,我猜在这里!)
Initial call create persistant stream
Return to console app where it starts to listen
onDataReady somehow post ints to stream
DartVM pushes to console app谢谢你的帮助。
https://stackoverflow.com/questions/24973148
复制相似问题