Notizie: se possiedi un dispositivo Android, prova Firefox per Android, un browser scattante e dinamico per navigare in ambiente mobile.

Autore Topic: Come esporre una funzione di una estensione al javascript standard?  (Letto 967 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline redfox76

  • Post: 1
Buongiorno,

sono stato incaricato di sostituire in un ambiente industriale web-based un applicativo VisualBasic con uno che girasse sotto Linux. L'applicativo VB legge da seriale dati da un PLC, li visualizza sullo schermo e li invia al server quando quest'ultimo li richiede su di una socket.
Ho scritto una estensione per Firefox usando XUL e le jslib che rimpiazza perfettamente il programma VB e che ho battezzato BLAX: funziona e il cliente è soddisfatto (anch'io, a dire il vero :D ). La situazione adesso è la seguente:
Codice: [Seleziona]
----------192.168.1.1-----------   |   --192.168.1.100--
PrgA      BLAX(jslib)    SER2Net   |     Server (php)
             d? -----------> 3     |
            d=3 <-----------       |
d?  -------------------------------|---------->
                <------------------|-----------  d?
           d=3! -------------------|---------->
3 <--------------------------------|-----------  3
Come si vede, la mia estensione BLAX comunica con il PLC tramite il programma ser2net e riceve le variabili (d) ogni 500ms. Inoltre, sullo stesso client, il programma in Javascript PrgA (inviato via HTTP dal server sulla intranet) quando ha bisogno del dato d lo chiede al server usando una form, il server (php) apre una connessione verso blax (l'estensione di firefox in ascolto), la quale risponde con d, il server ha il dato e finalmente lo rimanda al client javascript.

Ho dovuto sul client lanciare due istanze diverse di firefox perché il client javascript (PrgA) effettua una XMLHttpRequest bloccante e questo impedisce alla mia applicazione (BLAX) di rispondere, comunque a parte un po' più di memoria utilizzata il sistema funziona.

A questo punto mi piacerebbe ottimizzare il tutto in modo da eliminare il passaggio dal server (ricordo che l'applicazione esistente è stata scritta diversi anni fa e all'epoca il ced aziendale non aveva altra scelta per far comunicare un browser con un programma in visualbasic se non quella di passare dal server web stesso) ed usare una sola istanza di firefox, ed eccovi quindo la domanda: è possibile esporre una funzione di una estensione in modo che un normale programma javascript inviato da un server possa richiamarla e, in caso affermativo, come si fa?

Ho provato a cercare nella documentazione, ma ho trovato solo funzioni di comunicazione fra finestre xul, mentre io ho il vecchio applicativo interamente html e javascript che deve interagire con la mia estensione xul. Non c'è un modo di creare una funzione "pippolino" in una estensione e, da normale javascript scaricato via http, richiamarla?

Grazie in anticipo per ogni informazione.

PS: non ho pubblicato l'estensione perché il suo campo di applicazione a me sembra davvero ristretto, ma se qualche utente del forum crede di aver bisogno dei sorgenti ovviamente non ci sono problemi, basta chiedere. ;)

Offline klades

  • Moderatore
  • Post: 5788
    • http://www.nic-nac-project.org/~kaosmos
Re: Come esporre una funzione di una estensione al javascript standard?
« Risposta #1 il: 14 Maggio 2007 12:58:00 »
Non ho le competenze necessarie per sapere se ti può essere utile, cmq prova a dare un'occhiata a queste pagine (soprattutto "UniversalXPConnect")

http://www.mozilla.org/projects/security/components/signed-script-example.html
http://www.mozilla.org/projects/security/components/jssec.html

Ciao, Paolo

0 Utenti e 1 Visitatore stanno visualizzando questo topic.