ZeroMQ в клиенте javascript - PullRequest
       13

ZeroMQ в клиенте javascript

13 голосов
/ 16 ноября 2011

Кто-нибудь успешно использовал ZmqSocket.js ?Я хотел бы знать, как его можно использовать для установления безопасного канала между браузером и приложением сервера zeromq.Есть ли другие / лучшие варианты для такого варианта использования?

Ответы [ 3 ]

10 голосов
/ 24 ноября 2011

Я никогда не использовал ZmqSocket.js, но могу вам сказать, что это, вероятно, не очень хорошая идея (пока).Это потому, что zmq по-прежнему предполагает, что оба партнера хорошо знают протокол и взорвется, если ему будут предоставлены недопустимые данные (хотя они работают над исправлением этого).

То, что я сейчас делаю, это простой Прокси-сервер на основе node.js , использующий socket.io для связи с браузерами и передачи данных (и чтения из них) в сокет zeromq, где находится остальная часть приложения.


Обновление в 2013 году: Я написал sockjsproxy , который по существу передает сообщения в / из sockjs и zeromq, позволяя вам реализовать сервер на любом языке, который выхочу просто реализовать (очень простой) протокол на основе ZeroMQ.

Я лично использовал его с серверами Python и Scala для создания веб-приложений в реальном времени.

3 голосов
/ 28 ноября 2012

Я начал искать решение использовать веб-браузер для пользовательского интерфейса.

У меня есть приложение Java, которое собирает информацию из нескольких источников, анализирует ее и сохраняет результаты в базе данных, позволяя другим системам получать информацию.

Приложение Java предоставляет информацию (журналы, события и т. Д.) О сокете PUSH ZMQ и предоставляет сокет REP для его управления (изменение параметров, запросы диагностики и т. Д.).

В настоящее время у меня есть приложение Python с пользовательским интерфейсом, использующим Tk, и я планирую заменить его веб-интерфейсом.

Проблема с привязкой ZMQ JavaScript кроется в том, что в ней используется флэш-компонент, который не поддерживается iOS.

Делая немного Googoling, я нашел пост под названием " Взаимодействие с ZeroMQ из браузера ", в котором используется NullMQ

Надеюсь, это поможет.

1 голос
/ 15 мая 2014

Другая перспектива: реализация прокси WebSocket-to-ZeroMQ, который обрабатывает все стратегий ZeroMQ, кажется большой работой, но вы можете очень быстро запустить частичный прокси. Как и Эмиль, я экспериментирую с мостом PyZMQ <- Tornado -> WebSocket; в моем случае я забочусь только о получении сообщений от SUB-сокетов.

В моей модели я отправляю сообщения JSON из браузера на прокси-сервер, запрашивая создание новых сокетов ZMQ. Когда эти сокеты получают данные, они отправляют их обратно в браузер через то же соединение WebSocket.

Вот серверный прокси-сервер Python и мой внешний прокси-сервер javascript . В моем коде Python класс AsyncReciever представляет собой очень тонкую оболочку вокруг ZMQStream, которая в основном выполняет кодирование / декодирование JSON. Если вы хотите отправить необработанные байты ZeroMQ в браузер, все будет еще проще: просто подключите обратный вызов ZMQSocket.on_message непосредственно к BridgeWebSocket.write_message.

...