Я очень новичок в ZeroMQ. Я прочитал руководство и в настоящее время просматриваю примеры, а также просматриваю другую соответствующую информацию в Интернете. У меня есть нерешительность с тем, какие шаблоны сообщений использовать или если я должен использовать комбинацию из двух шаблонов.zeromq сообщение шаблон для многих для многих запрос/ответ
У меня есть существующее прикладное программное обеспечение, в котором есть система обмена сообщениями для домашних пользователей, которая нуждается в замене. У меня есть довольно простая архитектура:
|Client|<----->|driver1|
|
|---|driverN|
только один «клиент» подключается к водителю в то время в настоящее время, и может быть много водителей.
(в действительности, клиент, в данном случае, это действительно не мое клиентское приложение, но посредник сортов Для этой дискуссии, он может рассматриваться в качестве клиента.)
Сообщения:
- Клиент выдает команды водителю.
- Драйверы возвращают информацию о состоянии/состоянии в ответ на команды.
- Драйверы формируют элементы данных (то есть не информацию о состоянии/состоянии)
- Некоторые сообщения клиентов отправляются на все подключенные устройства, некоторые из них направлены только на один драйвер.
Драйверы могут находиться в одной системе или удаленно в локальной сети. Это не общедоступная сеть.
В настоящее время я думаю, что у меня будет паб и вспомогательный сокет на каждом драйвере и на паб/паб на клиенте. Сообщения не должны удаляться после подключения. Я предполагаю, что клиент будет подписываться на разные типы данных драйверов, а затем драйвер подписывается на сообщения команд клиентов.
Важные соображения: низкая латентность, наименьшая возможная пропускная способность.
Буду признателен за любые предложения или рекомендации! Заранее спасибо!
Я с вами на 1, 2 и 4, но потерян на 3; драйвер создает элементы данных, нормально, но что такое обмен сообщениями? Также, 4, решает ли клиент, идет ли сообщение на одно устройство или на все устройства? Является ли клиент клиентом ZeroMq? – raffian
для 3, полученные данные отвечают команде, отправленной клиентом. Пример: клиент отправляет команду «Снять неподвижное изображение», а затем драйвер возвращает изображение. Для 4 клиент решает, с каким устройством (устройствами) разговаривать. Клиент будет иметь компонент zeroMQ. Надеюсь, это поможет! –
Начните с чтения http://zguide.zeromq.org/page:all#Chapter-Advanced-Request-Reply-Patterns, вам понадобится этот фон для понимания семантики запроса и ответа и обволакивания. Я также предлагаю играть с примерами, это лучший способ узнать. Завтра я отправлю некоторые образцы кода для этой проблемы. – raffian