Pregunta

Siempre quise una forma de establecer una conexión de socket a un servidor y permitir que el servidor manipule la página DOM.Por ejemplo, esto podría usarse en una página de cotizaciones de acciones, de modo que el servidor pueda enviar nuevas cotizaciones a medida que estén disponibles.

Sé que esta es una limitación clásica (¿característica?) del protocolo de solicitud/respuesta de HTTP, pero creo que podría implementarse como un complemento de Firefox (la compatibilidad entre navegadores no es importante para mi aplicación).Las soluciones Java/Flash no son aceptables porque (hasta donde yo sé) viven en una caja y no pueden interactuar con el DOM.

¿Alguien puede confirmar si esto está dentro de la capacidad de un complemento de Firefox?¿Alguien ya ha creado esto o algo similar?

¿Fue útil?

Solución

Quizás quieras mirar Cometa que es un nombre elegante para una conexión HTTP de larga duración donde el servidor puede enviar actualizaciones a la página.

Otros consejos

Debería ser posible.He desarrollado una aplicación xulrunner que se conecta a un servidor TCP mediante sockets.El desarrollo de extensiones probablemente tendría las mismas capacidades.Usé una biblioteca de mozdev. JSLib.Consulte específicamente el código de red.El hecho de que exista un Complemento de Firefox para complemento JSlib para Firefox hace que más tenga más confianza.

Esencialmente, según tengo entendido, los sockets no son parte de JavaScript, pero a través de XPCOM, puede obtener acceso a sockets sin formato como lo haría en cualquier aplicación c/c++.

Advertencia: JSLib no parece recibir mucha atención y la lista de correo es bastante escasa.

Las soluciones Java/Flash no son aceptables, porque (hasta donde yo sé) viven en una caja y no pueden interactuar con el DOM.

En realidad, eso no es cierto en el caso de Java.Puede interactuar con Java a través de JavaScript y realizar cambios DOM.

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

En este ejemplo hay dos métodos JavaScript para la interacción.

Enviar:

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

Recibir:

on_socket_get(message){ more_code(message); }

Quizás quieras mirar el cometa.

también conocido como empuje del servidor.Esto no permite que el servidor "actualice" la página del cliente directamente, sino que todos los datos nuevos se envían a la página a través de una única conexión.

Por supuesto, un Firefox extensión (así como complementos, que son bibliotecas binarias que pueden hacer cualquier otra aplicación) también pueden funcionar con sockets.Ver 1, 2.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top