Domanda

Ho sempre desiderato un modo per stabilire una connessione socket a un server e consentire al server di manipolare il DOM della pagina.Ad esempio, questo potrebbe essere utilizzato in una pagina di quotazioni azionarie, in modo che il server possa inviare nuove quotazioni non appena diventano disponibili.

So che questa è una classica limitazione (caratteristica?) del protocollo di richiesta/risposta HTTP, ma penso che potrebbe essere implementato come plug-in per Firefox (la compatibilità tra browser non è importante per la mia applicazione).Le soluzioni Java/Flash non sono accettabili, perché (per quanto ne so) vivono in una scatola e non possono interagire con il DOM.

Qualcuno può confermare se questo rientra nelle capacità di un plugin per Firefox?Qualcuno ha già creato questo o qualcosa di simile?

È stato utile?

Soluzione

Potresti voler dare un'occhiata Cometa che è un nome di fantasia per una connessione HTTP di lunga durata in cui il server può inviare aggiornamenti alla pagina.

Altri suggerimenti

Dovrebbe essere possibile.Ho sviluppato un'applicazione xulrunner che si connette a un server TCP tramite socket.Lo sviluppo dell'estensione avrebbe probabilmente le stesse capacità.Ho usato una libreria di mozdev - JSLib.Nello specifico controlla il codice di rete.Il fatto che esista un Componente aggiuntivo Firefox per JSlib Componente aggiuntivo per Firefox rende più fiducioso.

Essenzialmente, a quanto ho capito, i socket non fanno parte di JavaScript, ma tramite XPCOM è possibile ottenere l'accesso ai socket grezzi come faresti in qualsiasi applicazione c/c++.

Avvertimento: JSLib non sembra ricevere molta attenzione e la mailing list è piuttosto scarsa.

Le soluzioni Java/Flash non sono accettabili, perché (per quanto ne so) vivono in una scatola e non possono interagire con il DOM.

In realtà questo non è vero per Java.Puoi interagire con Java tramite JavaScript e apportare modifiche al DOM.

http://stephengware.com/proj/javasocketbridge/

In questo esempio ci sono due metodi JavaScript per l'interazione

Inviare:

socket_send("This was sent via the socket\n\n");

Ricevere:

on_socket_get(message){ more_code(message); }

Potresti voler dare un'occhiata a Comet

a.k.a. spinta del server.Ciò non consente al server di "aggiornare" direttamente la pagina client, ma tutti i nuovi dati vengono inviati alla pagina tramite un'unica connessione.

Naturalmente, un Firefox estensione (così come plugin, che sono librerie binarie che possono fare tutto ciò che può fare qualsiasi altra applicazione) possono funzionare anche con i socket.Vedere 1, 2.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top