C# Net:网络上的反应流
我正在尝试在中分别实现源作为源和接收器作为远程,然后将接收器作为源和源作为远程,类型1和类型2工作流 类型1创建一个C# Net:网络上的反应流,c#,akka.net,akka.net-streams,C#,Akka.net,Akka.net Streams,我正在尝试在中分别实现源作为源和接收器作为远程,然后将接收器作为源和源作为远程,类型1和类型2工作流 类型1创建一个SourceRef,并将其作为传入数据的公开源传递给远程参与者。类型2创建一个SinkRef,并将其作为公开的接收器传递给远程参与者,以开始向其发送数据。为了进一步解释,我将Type 1()和Type 2()工作流都上传到GitHub上 类型1工作流已设置并正常工作,但类型2工作流有故障。我已经将问题缩小到DataReceiveractor中的Receive()方法。成功创建接收器
SourceRef
,并将其作为传入数据的公开源传递给远程参与者。类型2创建一个SinkRef
,并将其作为公开的接收器传递给远程参与者,以开始向其发送数据。为了进一步解释,我将Type 1()和Type 2()工作流都上传到GitHub上
类型1工作流已设置并正常工作,但类型2工作流有故障。我已经将问题缩小到DataReceiver
actor中的Receive()
方法。成功创建接收器后,使用PipeTo()
方法将流和接收器(通过measurementsinkready
消息)发送给源参与者
有人能指出我在Type 2工作流中可能出错的地方吗?我已经用尽了所有其他选择(;,各种博客和视频等)。我不知道从这里到哪里去,任何帮助都将不胜感激
多谢各位
编辑(根据评论添加额外信息)
数据永远不会在两个参与者之间远程发送,这就是问题所在。使用类型1,将建立一个
SourceRef
,并发送给远程参与者。远程参与者接收此消息。但是,对于类型2,会创建SinkRef
,但不会到达远程参与者。
因此,我假设问题在于
SinkRef
或PipeTo()
方法的生成。这是因为如果您在参与者之间发送消息,它会工作,但如果消息的条件是SinkRef
设置正确,然后设置出现了问题。这是Akka.Streams实现中的一个错误-从v1.4.14开始,此问题已得到修复:您没有告诉您遇到了什么问题。数据从未在两个参与者之间远程发送,这就是问题所在。使用类型1,将建立一个SourceRef
,并发送给远程参与者。远程参与者接收此消息。但是,对于类型2,会创建SinkRef
,但不会到达远程参与者。因此,我假设问题在于SinkRef
或PipeTo()
方法的生成。这是因为如果您在参与者之间发送消息,它会起作用,但是如果消息的条件是SinkRef
设置正确,那么设置中会出现问题。有人有什么想法吗?我没有主意,真的需要一些帮助。你有什么代码要点/代码片段可以分享,我们可以用来重现你的问题吗?嗨@Greg,请查看上面包含问题的GitHub页面。如上所述,问题已缩小到DataReceiver
actor中的Receive()
方法。如果已测试修复程序,则可以确认它现在正在工作。非常感谢。很高兴听到这个消息!