Ho un'estensione web di Google Chrome che deve comunicare con un'applicazione desktop Qt - ma come?Come connettere l'estensione web di Chrome con il server localhost?
C'è messaggistica nativo di Chrome, ma come voglio supportare più browser/OS, questo sarebbe troppo sforzo, perché è solo per Chrome.
Quindi c'è il post this che suggerisce l'impostazione di un server locale. Questo è quello che ho fatto, vedi sotto.
Ho installato un server con Qt con QTcpServer
che utilizza QTcpSocket
's su 127.0.0.1 (localhost). Ma un'estensione web non può ascoltare socket, solo app chrome can. Ci sono 2 possibili soluzioni per la testa:
Come soluzione alternativa, potrei forse scrivere un piccolo Chrome App. L'applicazione Qt parlava con l'estensione chrome tramite l'app chrome (socket di supporto per app chrome). Ma penso che questo metodo sia maldestro e non molto elegante.
D'altra parte, ho letto su
socket.io
. L'idea è: l'estensione chrome parla viahttp requests
con socket.io e socket.io dialoga tramite socket con la mia app desktop. Questa è una possibile soluzione?
Quello che ho anche provato, è quello di connettersi direttamente al server locale con il seguente codice. Nella mia applicazione server Qt, vedo che c'è una nuova connessione. Ma non posso ottenere una risposta a tutti (sia il mio codice Qt è sbagliato o è perché estensioni non possono ascoltare prese?)
var xhr = new XMLHttpRequest();
xhr.open("GET", "http://localhost:12345", true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
alert('This is the response from the server: '+ xhr.responseText);
}
Se si desidera supportare più browser/OS, il motivo per cui si usano ancora le estensioni di Google Chrome? È solo per il cromo. –
perché era il più facile da iniziare e il core (js, html, css) dovrebbe essere abbastanza universale ... – user2366975