上下文:我可以向系统发送命令,该系统可以使用ok
或error
消息进行答复(消息是通过UDP发送的)。虽然未发送响应,但它不能接受任何其他命令。我们必须等待答案发送下一条命令,但是我们希望所有触发的命令都发送到该系统。就像无损背压一样,可将以下命令同步到答复。
下面是一种大理石图来说明此过程:
commands$
是可观察到的,可以将命令发送到系统。 responses$
是可观察的,我们可以在其中订阅来自系统的响应。
如图所示,第一个命令不需要发送响应,可以使用merge()
来实现。
throttle()
运算符已接近我的需要,但是在未收到任何答复的情况下发送的命令丢失了。如果在收到任何响应的同时提供了两个命令,则第一个命令必须在此回复之后发送,而第二个命令必须在回复之后发送,如c4
和c5
所示。响应c4
之后立即发送命令r3
,响应c5
之后立即发送r4
。
有点像question,但是在这种情况下,由于前面提到的UDP使用,响应没有与来自HTTP客户端的请求进行链接。 >
有什么想法要实现吗?
注意:由于UDP的性质,如果从未收到回复,则将永远不会发送以下任何命令。这可以通过不同的策略来处理,但不一定在此问题的范围内。