0MQ - это протокол, уровень или оба? Могу ли я использовать его в сочетании с STOMP? - PullRequest
3 голосов
/ 14 июля 2010

Я связал себя узами, будучи новичком и в STOMP, и в 0MQ, но в двух словах, я хочу облегчить взаимодействие клиента с клиентом в браузере с помощью взаимодействия с PHP MOM или несколькими PHP MOM.Я рассматриваю возможность использования WebSocket для обеспечения постоянных дуплексных соединений (если они доступны) между клиентами браузера html5 и конечными точками MOM, а затем использую эти конечные точки для облегчения связи между любым количеством клиентов браузера, которые могут быть связаны 1-1, 1-отношения многие, многие-1.

Конечные точки MOM могут связываться с другими серверами или между собой для различных целей, и я считаю, что 0MQ может быть эффективным способом быстрого обмена информацией между этими серверами.Как протокол для обмена сообщениями между клиентами, STOMP выглядит хорошо (хотя я знаю о некоторых проблемах с определением протоколов) ....

.... так что вот моя точка недоразумения.Чтобы использовать STOMP, MOM должен быть брокером STOMP, и если он является брокером STOMP, то, поскольку 0MQ - это уровень обмена сообщениями без посредников, я не побеждал бы цель использования обоих?

Чтобы уточнить, я рассматриваю 0MQ для связи MOM - MOM и STOMP для связи клиент-клиент.

Если, конечно, есть способ, которым я мог бы повторно использовать 0MQ для облегчения связи между клиентом и клиентом?Я думаю, что моя настоящая путаница связана с 0MQ - это легкий уровень обмена сообщениями, а не протокол или оба?Если бы это был только слой, не мог бы я использовать 0MQ для передачи сообщений STOMP?

Если бы кто-нибудь мог пролить немного света на 0MQ для меня, я был бы очень благодарен - спасибо!

1 Ответ

2 голосов
/ 22 мая 2011

0MQ предоставляет API-интерфейс, похожий на сокет, без которого вы можете накладывать свои собственные протоколы.0MQ транспортирует простые неинтерпретированные двоичные данные (хотя некоторые языковые привязки добавляют поддержку для определенных сериализаций, таких как выборка Python или JSON).

В отличие от обычных сокетов, сокеты 0MQ могут быть много-к-одному, один-ко-многим.

0MQ также имеет понятие шаблонов обмена сообщениями - например, вы можете определить сокеты REQ / REP, которые устанавливают ограничение, что каждый запрос должен сопровождаться ответом - вам не разрешено отправлять два запроса встрока.Существуют различные другие шаблоны для различных ситуаций.

См. Руководство по 0MQ и API

Итак, чтобы ответить на некоторые ваши вопросы - 0MQ - этов основном это уровень обмена сообщениями, и в принципе вы должны иметь возможность отправлять STOMP через сокеты 0MQ так же, как и для обычных сетевых сокетов.Однако я не уверен, что веб-клиент может использовать 0MQ напрямую - ему нужны языковые привязки, а собственные библиотеки ZMQ должны быть доступны.Я думаю, что это исключает использование веб-клиента.

...