rabbitmq/api를 사용하여 원격 호스트에서 rabbitmq로 메시지를 게시 할 수있는 사례가 있으며 게시 된 메시지 처리를 MassTransit 소비자에게 전달하고 싶습니다.MassTransit 및 messageType 속성
내가 알 수있는 바와 같이, MassTransit 소비자와 성공의 "최소한의 필요한 속성"처리 메시지는 다음과 같습니다
페이로드 :
{
'messageId':'86fd0000-17e1-ac9e-4bde-08d3f1e8553e',
'correlationId':'86fd0000-17e1-ac9e-4165-08d3f1e8553e',
'conversationId':'86fd0000-17e1-ac9e-4d99-08d3f1e8553e',
'messageType':[
'urn:message:Tm.Core.Integration.RabbitMq.Bus.Extension:EndScenario',
'urn:message:Tm.Core.Integration.RabbitMq.Command:IEndScenario',
'urn:message:Tm.Core.Integration.RabbitMq.Command:ICommand'
],
'message':{
'correlationId':'86fd0000-17e1-ac9e-4165-08d3f1e8553e',
'scenarioId':'6c3fda36-8ded-41f0-9536-dd76cd146963'
}
}
당신이 볼 수 있듯이,은 messageType 속성 정보를 포함하고, 책임있는 소비자에게 전달하는 데 도움이됩니다 (그렇지 않습니까?).
내가 물어보고 싶은데, 그 재산을 제거하고 MassTransit 소비자를 사용하는 이런 식으로 전달 된 메시지를 처리 할 수있는 방법이 있습니까? 조만간 조만간 리팩터링이 내 코드를 깨뜨릴 까봐 두렵다. (messageType은 메시지의 런타임 유형에 달려있다, 그렇습니까?) 나는 그것을 막고 싶습니다.
나는 라우팅의 일부 코드를 작성해야한다는 것을 이해한다. (mb는이 메시지를 얻고 더 많은 정보를 제공한다)?
내 목표는 다음과 같이 메시지를 전달하는 것입니다 :
{
'messageId':'86fd0000-17e1-ac9e-4bde-08d3f1e8553e',
'correlationId':'86fd0000-17e1-ac9e-4165-08d3f1e8553e',
'conversationId':'86fd0000-17e1-ac9e-4d99-08d3f1e8553e',
'message':{
'correlationId':'86fd0000-17e1-ac9e-4165-08d3f1e8553e',
'scenarioId':'6c3fda36-8ded-41f0-9536-dd76cd146963'
}
}