Plugin Firefox - sockets
Pergunta
Eu sempre quis uma maneira de fazer um soquete de conexão para um servidor e permitir que o servidor para manipular a página do DOM.Por exemplo, isso pode ser usado em um cotações da bolsa de página, de modo que o servidor possa enviar novas propostas como eles se tornam disponíveis.
Eu sei que este é um clássico limitação (recurso?) de HTTP do pedido/resposta do protocolo, mas eu acho que isso poderia ser implementado como um plugin do Firefox (compatibilidade cross-browser não é importante para minha aplicação).Java/Flash soluções não são aceitáveis, porque (até onde eu sei), eles vivem em uma caixa e não pode interagir com o DOM.
Alguém pode confirmar se este está dentro da capacidade de um plugin do Firefox?Tem alguém já criou isso ou algo semelhante?
Solução
Você pode querer olhar para Cometa o que é um nome fantasia para uma longa conexão HTTP, onde o servidor possa enviar atualizações para a página.
Outras dicas
Deve ser possível.Tenho desenvolvido uma xulrunner aplicativo que se conecta a um servidor TCP usando sockets.Desenvolvimento de extensão provavelmente teria as mesmas capacidades.Eu usei uma biblioteca a partir de mozdev - JSLib.Especificamente confira o código de rede.O fato de que há um Firefox add-on para JSlib add-on para o Firefox faz mais confiantes.
Essencialmente, tal como eu o entendo, sockets não são parte do JavaScript, mas através de XPCOM, você pode obter raw socket de acesso, como você faria em qualquer aplicativo c/c++.
Aviso: JSLib não parece muito a atenção e a lista de discussão é muito escassa.
Java/Flash soluções não são aceitáveis, porque (até onde eu sei) eles vivem em uma caixa e não pode interagir com o DOM.
Não é bem verdade do Java.Você pode interagir com Java via JavaScript e fazer alterações DOM.
http://stephengware.com/proj/javasocketbridge/
Neste exemplo, há dois métodos JavaScript para interação
Enviar:
socket_send("This was sent via the socket\n\n");
Receber:
on_socket_get(message){ more_code(message); }
Você pode querer olhar Errante
um.k.um. de envio do servidor.Isso não permite que o servidor de "atualizar" a página do cliente diretamente, mas de todos os novos dados são enviados para a página através de uma única conexão.
Claro, um Firefox extensão (bem como plugins, que são binários bibliotecas que pode fazer tudo o que qualquer outro aplicativo pode fazer) pode trabalhar com sockets também.Ver 1, 2.