我有一個需要與Qt桌面應用程序進行通信的谷歌瀏覽器網頁擴展 - 但是如何?如何將chrome web擴展與本地主機服務器連接?
有鍍鉻的本地消息,但我想,以支持多種瀏覽器/ OS,這將是太多精力,因爲它是唯一的鉻。
然後有this帖子,建議設置本地服務器。這就是我所做的,見下文。
我已經建立了使用Qt上127.0.0.1(本地主機)使用QTcpSocket
的一個服務器QTcpServer
。但是,網絡擴展程序無法偵聽套接字,只有Chrome應用程序can。我有兩種可能的解決方案:
作爲一種解決方法,我可以寫一個小型的Chrome應用程序。 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,你爲什麼還在使用谷歌Chrome瀏覽器擴展?它只適用於鉻。 –
因爲它是最容易開始和核心(js,html,css)應該是相當普遍的... – user2366975