私はQtデスクトップアプリケーションと通信する必要があるGoogle ChromeのWeb拡張機能を持っていますが、どうですか?chrome web extensionをlocalhostサーバーに接続する方法は?
は、Chromeのネイティブメッセージングがありますが、私は複数のブラウザ/ OSをサポートしたいと、それが唯一のクロムのためであるので、これはあまりにも多くの努力になります。
次に、thisの投稿があり、ローカルサーバーの設定を示唆しています。これは私がやったことです、以下を参照してください。
私は127.0.0.1(ローカルホスト)上QTcpSocket
年代を使用していますQTcpServer
とのQtを使用してサーバーを設定しています。しかし、Web拡張機能はソケットを聴くことはできません。クロムアプリcanのみが鳴ります。
回避策として、私はおそらく小さなクロムアプリを書くことができました。 Qtアプリケーションは、chromeアプリ(chromeアプリサポートソケット)を介してchrome拡張機能と通信します。しかし、私はこの方法は不器用で、非常にエレガントではないと思います。
一方、私は
socket.io
について読んでいます。 アイデアは:クロム拡張子はhttp requests
でsocket.ioで、socket.ioはデスクトップアプリケーションでソケット経由で話します。これは可能な解決策ですか?
私が試したことは、次のコードでローカルサーバーに直接接続することです。私のQtサーバアプリケーションでは、新しい接続があることがわかります。しかし、私は(私のQtのコードが間違っているかの拡張機能は、ソケットを聞くことができませんので、それはどちらか?)すべての応答を取得することはできません
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);
}
複数のブラウザ/ OSをサポートしたい場合は、引き続きGoogle Chrome拡張機能を使用しますか?それはクロムのためだけです。 –
これは最初から始まり、コア(js、html、css)が非常に普遍的なはずです。 – user2366975