2014-06-16 194 views
1

很抱歉,如果這是一個已經被問到的愚蠢問題,但我甚至不知道哪些條款可以最好地搜索。Web瀏覽器作爲Web服務器

我有一種情況,雲應用程序會將SPA(單頁應用程序)提供給客戶端Web瀏覽器。多個客戶端將立即連接,並將在同一個網絡中工作。一個例子是一個企業用來協同工作的應用程序 - 全部在同一個物理空間內(全部在同一個網絡上)。

一個令人擔憂的問題是互聯網連接可能是多餘的。我知道我可以在本地存儲客戶端更改,然後在連接恢復後將它們全部推送到服務器。但是,問題在於某些客戶端(顯示系統)需要顯示來自其他客戶端(移動輸入系統)的最新數據。如果互聯網癱瘓一兩分鐘,那將是不可接受的。

我目前的想法是,本地網絡需要某種「瘦服務器」,所有客戶端將連接到。然後,此ThinServer將作爲主要雲服務器的代理。如果互聯網出現故障,ThinServer將接管同步數據的工作。由於所有的客戶端都是完整的SPA,因此移動的唯一數據就是數據 - 所以ThinServer實際上只需要同步數據庫信息(它可能不需要託管整個SPA-儘管如此,這不會是一個壞事)。

但是,對於大多數公司來說,一個完整的專用服務器顯然是一個很大的障礙。

所以問題是,是否有任何一種技術可以讓網頁充當網絡服務器?是否可以指示企業在任何一臺機器的瀏覽器中訪問thinserver.coolapp.com?這個「網頁」然後會說:「這個網絡中的所有客戶端應該連接到192.168.1.74:2000」(這將是運行此頁面的機器的IP:端口)。所有的客戶端都會連接到這個新的「服務器」,如果互聯網出現故障,該服務器將充當數據協調器。

換句話說,我真的不喜歡複雜的服務器設置的想法。一個簡單的URL來啓動服務將是所有需要的。

我想唯一的選擇可能必須是需要安裝的二進制程序?這不是一個理想的解決方案 - 但也許是唯一的解決方案?如果是這樣,那麼他們的任何程序都是單點擊Web服務器嗎?我試過MAMP,LAMP等,但所有這些都是爲開發者設計的。任何其他更精簡的?

感謝您的任何想法!

回答

2

有幾種基本方法可以解決這個問題。首先是按照您的建議在瀏覽器中託管服務器。一些示例項目:

另一種是使用的WebRTC點對點通信,使瀏覽器共享彼此之間的信息(你可以有他們所有份額的日期或有一個扮演「大師」等角色,加深他不想要的架構)。它可能不會在皮膚下有所不同,但是根據您的需要,您的應用程序設計可能更適合更「點對點」模式或更多「客戶端服務器」模式。一個例子「點對點」項目:

我沒有使用過任何上述的個人,但我會說,從過去使用類似瀏覽器的擴展機制,你需要檢查瀏覽器要求,然後再決定他們是否可以做你想做的事。上面的第一個是基於Chrome的(我相信),第二個是Firefox。點對點瀏覽器包含一系列兼容的瀏覽器功能,但實際上也是基於Firefox和Chrome的瀏覽器(請參閱鏈接中的表格)。如果你處於一個可以指定瀏覽器類型和插件等的環境,那麼這對你來說可能是好的。

這個概念絕對是非常有趣的(點對點網絡服務器),如果你有時間去探索它,那就太好了。然而,如果你有一個直接的業務需求,可能是一個簡單的基於現場服務器的方法可能實際上更可靠,支持更多種類的瀏覽器,實際上更容易維護(因爲所需的技能是相當普遍可用的)。

順便說一句,我應該說 - 'WebRTC'可能是一個很好的搜索術語,用於回答你的問題的第一行。

+0

謝謝!這是更好的信息,然後我意識到是可用的。我聽說過RTC,但認爲它只是視頻 - 現在閱讀它,聽起來像點對點數據也是非常棒的。但是,你說得對,現在安裝服務器可能會更容易。我會繼續研究。非常感謝您的意見! –

+0

祝你好運!如果您發現可靠的點對點解決方案,您可能可以在此處更新評論或其他答案。 – Mick

+0

我會的。到目前爲止,WebRTC似乎是最好的選擇,因爲我可以「強制」用戶使用特定的機器和瀏覽器。再次感謝。 –