2012-09-24 40 views
3

我有一個外部應用程序可以自動執行網站上的一些任務。我的目標是實現一個允許程序和Chrome同步Cookie的系統。雖然可以查詢Chrome的Cookie數據庫以讀取Cookie,但由於Chrome在文件上維護一個I/O鎖,因此無法更新數據庫,因此無法輕鬆進行同步。Chrome擴展程序 - 與外部程序通信

對我來說,下一個合乎邏輯的步驟是嘗試創建一個擴展程序,根據需要更新cookie(通過Chrome的Cookie API)。然而,經過大約兩天的研究,我一直無法找到一種在瀏覽器和我的應用程序(用Python編寫)之間傳遞cookie數據的有效方法。

套接字已關閉,因爲它僅適用於基於桌面的應用程序。 Websockets已經出來了,因爲據我所見,使用HTML5 API(這是我需要的,因爲瀏覽器需要作爲服務器並且程序將是連接客戶端)來設置Websocket服務器是不可能的。我真的不確定我現在留下了什麼。有什麼顯而易見的,我在這裏失蹤?任何幫助表示讚賞,歡呼聲。

+2

爲什麼你不能使用套接字?另外,爲什麼瀏覽器需要成爲服務器?一些額外的信息將有所幫助:) –

+0

「僅基於桌面的應用程序」。 「網站上的一些任務」。什麼? – Eric

+0

有人告訴我,我不能在擴展中使用套接字。實際上,當我嘗試將套接字加載到我的擴展中時,我使用此元文件收到了「無效的權限值[2]」:http://pastebin.com/Exj3feFP。只有瀏覽器是服務器纔有意義,因爲只有一個瀏覽器,並且可能有多個程序正在打開。將瀏覽器作爲服務器將允許所有應用程序實例連接到瀏覽器,而不是瀏覽器嘗試查找並連接到每個應用程序實例。這有幫助嗎? –

回答

2

這感覺就像一個非常奇怪的方式來做任何你想做的事情。你爲什麼又這樣做?

不管怎麼說,最明顯的解決方案是這樣的:

enter image description here

你顯然必須在應用/插件與服務器之間的通信安全。再一次,這感覺像是一種非常奇怪的做事方式。但解決方案將起作用。在這種情況下,該應用程序和插件是WS客戶端,您的服務器是仲裁者。

+0

我會給這個鏡頭。我試圖在Google Chrome和Python應用程序之間同步Cookie。除非我還沒有看到其他方式,否則這種實現方式是我唯一的選擇。 –

+0

編輯文件是不可能的(正如你所意識到的),我不知道任何MPI風格的JS庫,所以web-sockets(或AJAX)可能是你最好的選擇。只要確保你同步正確的瀏覽器。 –