2008-08-16 19 views
4

J'ai toujours voulu un moyen de faire une connexion socket à un serveur et permettre au serveur de manipuler le DOM page. Par exemple, cela pourrait être utilisé dans une page de cotations boursières, de sorte que le serveur peut pousser de nouvelles citations à mesure qu'elles deviennent disponibles. Je sais qu'il s'agit d'une limitation classique (fonctionnalité?) Du protocole de requête/réponse de HTTP, mais je pense que cela pourrait être implémenté comme un plugin Firefox (la compatibilité multi-navigateur n'est pas importante pour mon application). Les solutions Java/Flash ne sont pas acceptables, car (pour autant que je sache) elles vivent dans une boîte et ne peuvent pas interagir avec le DOM.Firefox plugin - sockets

Quelqu'un peut-il confirmer si cela est dans la capacité d'un plugin Firefox? Est-ce que quelqu'un a déjà créé ceci ou quelque chose de similaire?

Répondre

2

Vous voudrez peut-être regarder Comet qui est un nom de fantaisie pour une connexion HTTP longue durée où le serveur peut envoyer des mises à jour à la page.

0

Vous pouvez regarder la comète

server push a.k.a.. Cela ne permet pas au serveur de "mettre à jour" la page du client directement, mais toutes les nouvelles données sont envoyées à la page via une seule connexion.

Bien sûr, un Firefox extension (ainsi que plugins, qui sont des bibliothèques binaires capables de faire ce que toute autre application peut faire) peut également fonctionner avec des sockets. Voir 1, 2.

2

Cela devrait être possible. J'ai développé une application xulrunner qui se connecte à un serveur TCP en utilisant des sockets. Le développement de l'extension aurait probablement les mêmes capacités. J'ai utilisé une bibliothèque de mozdev - JSLib. Plus précisément, consultez le networking code. Le fait qu'il y ait un Firefox add-on for JSlib add-on for Firefox rend plus confiant. Essentiellement, si je comprends bien, les sockets ne font pas partie de JavaScript, mais à travers XPCOM, vous pouvez obtenir un accès raw socket comme vous le feriez dans n'importe quelle application c/c + +.

Avertissement: JSLib ne semble pas recevoir beaucoup d'attention et la liste de diffusion est plutôt rare.

1

solutions Java/Flash ne sont pas acceptables, parce que (pour autant que je sache) ils vivent dans une boîte et ne peuvent pas interagir avec les DOM.

Ce n'est pas vrai pour Java. Vous pouvez interagir avec Java via JavaScript et effectuer des modifications DOM.

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

Dans cet exemple, il existe deux méthodes JavaScript pour l'interaction

Envoyer:

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

Recevez:

on_socket_get(message){ more_code(message); }