2015-02-12 4 views
3

Как MassTransit может выводить сообщения из RabbitMQ, когда сообщения отправляются из другого источника отправки сообщений (в этом случае клиент RabbitMQ)?MassTransit вытягивание сообщений из внешней системы

Сообщения имеют один и тот же контракт с сообщением C# и сериализуются как json.

Ошибка тока я получаю это masstransit ошибка синтаксического анализа ...

ответ

3

MassTransit использует ряд конвенций и есть дополнительные детали вы, что, вероятно, нужно будет добавить к полезной нагрузке, если публикации из не MassTransit издателя. Если вы получаете ошибку синтаксического анализа, вам, вероятно, не хватает информации типа messageType ниже.

Payload:

{ 
    "destinationAddress": "rabbitmq://localhost/<exchange>", 
    "headers": {}, 
    "message": { 
    "property": "value" 
    }, 
    "messageType": [  
    "urn:message:<TYPE>", 
    "urn:message:<PARENT_TYPE>" 
    ], 
    "sourceAddress": "rabbitmq://localhost/queue" 
} 
+0

нет кости, все еще получаю ту же ошибку – Alex

+0

У вас есть фрагмент кода или детали исключения? – BTC

+0

Добавление ** messageType ** было одной проблемой. Я также понял, что мне нужно добавить заголовок с типом контента, который выглядит следующим образом: {«Content-Type», «application/vnd.masstransit + json»}. Чтобы создать сообщение из-за пределов MT, три основные вещи, которые необходимо обработать, - Message, MessageType и Content-Type. Теперь проблема заключается в изменении строки типа контента, чтобы просто быть «application/json». Посмотрев на MT-код, похоже, мне нужен пользовательский сериализатор ?? – Alex

Смежные вопросы