Подтвердить что ты не робот

ZeroMQ в клиенте javascript

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

4b9b3361

Ответ 1

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

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


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

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

Ответ 2

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

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

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

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

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

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

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

Ответ 3

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

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

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