ZeroMQ w kliencie javascript

Czy ktoś używał ZmqSocket.JS pomyślnie? Chciałbym wiedzieć, jak można go wykorzystać do ustanowienia bezpiecznego kanału między przeglądarką a aplikacją zeromq server. Czy istnieją inne / lepsze opcje dla takich przypadków użycia?

Author: Carlo Pires, 2011-11-16

3 answers

Nigdy nie używałem ZmqSocket.js, ale mogę powiedzieć, że to chyba nie jest dobry pomysł (jeszcze). Dzieje się tak, ponieważ zmq nadal zakłada, że obaj rówieśnicy dobrze znają protokół i wybuchnie, jeśli podadzą nieprawidłowe dane(pracują jednak nad tym).

Teraz mam prosty węzeł.JS based proxy that uses socket.io Aby komunikować się z przeglądarkami i przesyłać dane do (i odczytywać z) gniazda zeromq, gdzie reszta aplikacji jest.


Aktualizacja w 2013: napisałem sockjsproxy, które zasadniczo proxy wysyła wiadomości do/z sockjs i zeromq, pozwalając zaimplementować serwer w dowolnym języku, po prostu implementując (bardzo prosty) protokół ZeroMQ.

Osobiście używałem go z serwerami Python i Scala do tworzenia aplikacji internetowych w czasie rzeczywistym.

 9
Author: Emil Ivanov,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-28 21:11:03

Zacząłem szukać rozwiązania do korzystania z przeglądarki internetowej dla interfejsu użytkownika.

Mam aplikację Java, która zbiera informacje z kilku źródeł, analizuje je i przechowuje wyniki w bazie danych, pozwalając innym systemom na informacje.

Aplikacja Java dostarcza informacje (dzienniki, zdarzenia itp.) na gniazdku ZMQ PUSH i zapewnia Gniazdo REP do sterowania nim (zmiana parametrów, żądania diagnozy itp.).

Obecnie mam aplikację Pythona z UI używającą Tk i planuję aby zastąpić go interfejsem WWW.

Problem, który mam z zmq JavaScript biding jest to, że używa komponentu flash, który nie jest obsługiwany przez iOS.

Robiąc trochę Googolingu znalazłem post zatytułowany " Interakcja ze ZeroMQ z przeglądarki ", który używa NullMQ

Mam nadzieję, że to pomoże.

 3
Author: jschiavon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-11-28 15:31:06

Inna perspektywa: wdrożenie serwera proxy WebSocket-to-ZeroMQ, który obsługuje Wszystkie strategii ZeroMQ wydaje się dużo pracy, ale bardzo szybko można uruchomić częściowy serwer proxy. Podobnie jak Emil, eksperymentuję z PyZMQ WebSocket bridge; w moim przypadku zależy mi tylko na otrzymywaniu wiadomości z gniazd podrzędnych.

W moim modelu wysyłam wiadomości JSON z przeglądarki do proxy, prosząc o utworzenie nowych gniazd ZMQ. Gdy te gniazda odbierają dane, wyślij go z powrotem do przeglądarki przez to samo połączenie WebSocket.

Oto backend proxy Pythona i moja nakładka proxy javascript. W moim kodzie Pythona klasa AsyncReciever jest bardzo cienką owijką wokół ZMQStream, która w zasadzie uruchamia kodowanie/dekodowanie JSON. Jeśli chcesz wysłać surowe bajty ZeroMQ do przeglądarki, będzie jeszcze łatwiej: po prostu podłącz wywołanie zwrotne ZMQSocket.on_message bezpośrednio do BridgeWebSocket.write_message.

 1
Author: Just Jake,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-15 11:36:45