成像我们有两个类, Payer Class 和 Receiver Class 。
是否可以使用以下方法传递/发送多个变量:
FlowSession.send()
?
尝试时,例如以下
sessionWithRecipient.send(Variable1)
sessionWithRecipient.send(Variable2)
似乎只有第一个变量将被发送到收件人类。
在响应者流程中,我使用下面显示的命令接收变量并将其解包:
val variable1 = initiatorSession.receive<Int>().unwrap { it }
val variable2 = initiatorSession.receive<Int>().unwrap { it }
您能帮我解决一下发送和接收多个变量的方法吗?谢谢:))
答案 0 :(得分:2)
而不是发送两次。只需创建一个包含所有所需成员变量的包装器对象。然后将这个Wrapper对象列入白名单。这样你只需要发送一次。我觉得这样清洁。
答案 1 :(得分:1)
以下工作正常,将Sum is 3.
打印到控制台:
@InitiatingFlow
@StartableByRPC
class Initiator(val counterparty: Party) : FlowLogic<Unit>() {
@Suspendable
override fun call() {
val counterpartySession = initiateFlow(counterparty)
counterpartySession.send(1)
counterpartySession.send(2)
}
}
@InitiatedBy(Initiator::class)
class Responder(val counterpartySession: FlowSession) : FlowLogic<Unit>() {
@Suspendable
override fun call() {
val int1 = counterpartySession.receive<Int>().unwrap { it }
val int2 = counterpartySession.receive<Int>().unwrap { it }
logger.info("Sum is ${int1 + int2}.")
}
}