支持网络响应式扩展的 Web 技术有哪些?
What are some web technologies that support reactive extensions over a network?
在 RX 中,您有可观察对象和观察者。到目前为止,我已经处理了同一台机器上的这两个概念元素。但是,如果它们被局域网甚至互联网隔开怎么办?有哪些选项可以透明地订阅不同机器上的可观察对象?当有网络阻碍时,什么技术可以支持这种流订阅行为?
具体来说,我的目标平台是 WinRT 应用程序客户端,服务器是 Windows 机器上的 运行。
目前这是一个非常宽泛的问题,很难提供有帮助的答案。我不相信目前 public space 中有任何内容可以满足您的要求,即在可观察序列上透明地公开远程查询。然而,Bart 和 Rx/Bing/Cortana 团队在微软显然有一些内部软件可以做到这一点。
要做到这一点,您确实需要能够序列化您的查询并将它们发送到服务器。在 IEnumerable<T>
世界中,这转化为 IQueryable<T>
,典型示例是 LINQ-SQL/Entity 框架。在 Rx 中,IObservable<T>
会映射到 IQbservable<T>
(确实如此),但这种类型的实现很少见。我相信这主要是由于大多数人都在与 Rx 呈现的学习曲线作斗争,并且不想要额外的抽象层。
如果您不需要透明订阅,而只是想将数据从一台服务器流式传输到另一台服务器并使用 Rx,那么您可以使用 SignalR、WCF、Crossbar。IO/WAMP 和我敢肯定还有很多其他人。您可能只需要在库周围放一个小包装器,可能只是 Observable.Create
.
编辑:
这是将 Rx 与 Tibco 的 Rendevous (TibRv) 通信堆栈结合使用的示例。
https://github.com/LeeCampbell/RxCookbook/blob/master/IO/Comms/TibRv.md
和代码
https://github.com/LeeCampbell/RxCookbook/blob/master/IO/Comms/TibRvSample.linq
在 RX 中,您有可观察对象和观察者。到目前为止,我已经处理了同一台机器上的这两个概念元素。但是,如果它们被局域网甚至互联网隔开怎么办?有哪些选项可以透明地订阅不同机器上的可观察对象?当有网络阻碍时,什么技术可以支持这种流订阅行为?
具体来说,我的目标平台是 WinRT 应用程序客户端,服务器是 Windows 机器上的 运行。
目前这是一个非常宽泛的问题,很难提供有帮助的答案。我不相信目前 public space 中有任何内容可以满足您的要求,即在可观察序列上透明地公开远程查询。然而,Bart 和 Rx/Bing/Cortana 团队在微软显然有一些内部软件可以做到这一点。
要做到这一点,您确实需要能够序列化您的查询并将它们发送到服务器。在 IEnumerable<T>
世界中,这转化为 IQueryable<T>
,典型示例是 LINQ-SQL/Entity 框架。在 Rx 中,IObservable<T>
会映射到 IQbservable<T>
(确实如此),但这种类型的实现很少见。我相信这主要是由于大多数人都在与 Rx 呈现的学习曲线作斗争,并且不想要额外的抽象层。
如果您不需要透明订阅,而只是想将数据从一台服务器流式传输到另一台服务器并使用 Rx,那么您可以使用 SignalR、WCF、Crossbar。IO/WAMP 和我敢肯定还有很多其他人。您可能只需要在库周围放一个小包装器,可能只是 Observable.Create
.
编辑:
这是将 Rx 与 Tibco 的 Rendevous (TibRv) 通信堆栈结合使用的示例。
https://github.com/LeeCampbell/RxCookbook/blob/master/IO/Comms/TibRv.md 和代码 https://github.com/LeeCampbell/RxCookbook/blob/master/IO/Comms/TibRvSample.linq