Corda 使用“传递多个变量”;FlowSession.send";方法

Corda 使用“传递多个变量”;FlowSession.send";方法,corda,Corda,成像我们有两类,付款人类和接收人类。 是否可以使用以下方法传递/发送多个变量: FlowSession.send() 尝试时,例如以下 sessionWithRecipient.send(Variable1) sessionWithRecipient.send(Variable2) 似乎只有第一个变量将被发送到recipient类 在响应程序流中,我使用如下所示的命令接收变量并将其展开: val variable1 = initiatorSession.receive<Int>()

成像我们有两类,付款人类和接收人类。 是否可以使用以下方法传递/发送多个变量:
FlowSession.send()

尝试时,例如以下

sessionWithRecipient.send(Variable1)
sessionWithRecipient.send(Variable2)
似乎只有第一个变量将被发送到recipient类

在响应程序流中,我使用如下所示的命令接收变量并将其展开:

val variable1 = initiatorSession.receive<Int>().unwrap { it }
val variable2 = initiatorSession.receive<Int>().unwrap { it }
val variable1=initiatorSession.receive().unwrap{it}
val variable2=initiatorSession.receive().unwrap{it}

你能帮我解决发送和接收多个变量的问题吗?谢谢:)

以下操作正常,将
总和为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}.")
    }
}
@InitiatingFlow
@星表
类发起人(val对方:参与方):FlowLogic(){
@暂停
覆盖有趣的调用(){
val交易对手Session=发起流动(交易对手)
对方会话。发送(1)
对方会话。发送(2)
}
}
@发起人(发起人::类)
类响应程序(val countpartysession:FlowSession):FlowLogic(){
@暂停
覆盖有趣的调用(){
val int1=countpartysession.receive().unwrap{it}
val int2=countpartysession.receive().unwrap{it}
info(“总和为${int1+int2}”)
}
}

以下操作正常,打印
总和为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}.")
    }
}
@InitiatingFlow
@星表
类发起人(val对方:参与方):FlowLogic(){
@暂停
覆盖有趣的调用(){
val交易对手Session=发起流动(交易对手)
对方会话。发送(1)
对方会话。发送(2)
}
}
@发起人(发起人::类)
类响应程序(val countpartysession:FlowSession):FlowLogic(){
@暂停
覆盖有趣的调用(){
val int1=countpartysession.receive().unwrap{it}
val int2=countpartysession.receive().unwrap{it}
info(“总和为${int1+int2}”)
}
}

而不是发送两次。只需创建一个包含所有所需成员变量的包装器对象。然后将此包装器对象列入白名单。这样你只需要发送一次。我觉得这样更干净。

而不是发送两次。只需创建一个包含所有所需成员变量的包装器对象。然后将此包装器对象列入白名单。这样你只需要发送一次。我觉得这样更干净