2010-11-05 61 views
0

我有一個後端軟件,需要能夠與基於壁虎的網頁瀏覽器進行通信(反之亦然)。什麼是最好的方式來實現這一點?由於HTTP是單向的(除了例如反向AJAX,我認爲它很「黑客」),我想知道如何做到這一點。如何實現瀏覽器與後端的通信?

會創建一個基於NPAPI的插件嗎?基於瀏覽器和後端之間交換的數據,瀏覽器需要操縱網頁的DOM。操作需要相當動態,通信速度是一個重要的要求。

我很高興任何幫助指引我在正確的方向或提供可能值得閱讀的有用資源!

+0

爲什麼你會考慮AJAX hacky?它確實是這個行業的標準解決方案,並且是一項相當成熟的技術。 – 2010-11-05 21:52:42

+0

對不起,我不是說AJAX本身就是黑客。你是對的,AJAX本身已經成熟和令人印象深刻!我寧願將諸如Comet或長輪詢等解決方案視爲通過HTTP創建「雙工」通信的黑客。 – Simon 2010-11-05 22:44:11

回答

1

寫作的瀏覽器插件是不是很瑣碎,如果你可以像使用WebSockets的替代品(或它們的仿真像web-socket-js,見herehere有詳細介紹)。

只有當這些替代方案由於特殊要求而不能給予您足夠的控制權時,您應該考慮編寫一個瀏覽器插件。
有了它,你會得到的本機代碼的全部好處(對你選擇的任何API高控制),而且隨之而來的問題:你不得不開始擔心特權

  • 錯誤可能崩潰整個瀏覽器
  • 你可能必須處理平臺和瀏覽器之間的行爲差​​異
  • 你不用擔心分佈在多個平臺上
  • ...

如果你需要控制的上級出於某種原因,你可以

  • 實現你所選擇的連接處理的插件
  • 讓JavaScript的發起連接,併發送數據
  • 讓JavaScript的註冊處理程序輸入數據等上輸入數據
  • 調用這些處理程序,並通過他們的數據

要開始使用NPAPI插件see here,爲了支持IE,您必須編寫content extension。最後,我建議看看FireBreath,它已經爲你做了很多繁重的工作(隱藏了針對IE和NPAPI的不同API,爲你提供了更高級別的API,修復了瀏覽器錯誤,......)。

相關問題