簡體   English   中英

Web 瀏覽器作為 Web 服務器

[英]Web browser as web server

對不起,如果這是一個已經被問過的愚蠢問題,但我什至不知道最好搜索什么術語。

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

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

我目前的想法是本地網絡需要某種所有客戶端都可以連接的“ThinServer”。 然后,此 ThinServer 將用作主雲服務器的代理。 如果 Internet 中斷,則 ThinServer 將接管同步數據的工作。 由於所有客戶端都是完整的 SPA,唯一需要移動的就是數據——所以 ThinServer 真的只需要同步數據庫信息(它可能不需要托管完整的 SPA——不過,那不會是一個壞事)。

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

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

換句話說,我真的不喜歡復雜的服務器設置的想法。 只需要一個簡單的 URL 來啟動服務。

我想唯一的選擇可能是需要安裝的二進制程序? 這不是一個理想的解決方案 - 但也許是唯一的解決方案? 如果是這樣,他們的任何程序都是單擊 Web 服務器嗎? 我嘗試過 MAMP、LAMP 等,但它們都是為開發人員設計的。 還有其他更精簡的嗎?

感謝您的任何想法!

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

另一種方法是使用 WebRTC 點對點通信以允許瀏覽器在彼此之間共享信息(您可以讓它們全部共享日期或讓一個人充當“主人”等,而不是深化您想要的架構)。 它在皮膚下可能不會有那么大的不同,但是您的應用程序設計可能更適合更“點對點”的模型或更“客戶端服務器”的模型,具體取決於您的需要。 “點對點”項目示例:

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

這個概念絕對非常有趣(點對點 Web 服務器),如果您有時間探索它,那就太好了。 但是,如果您有直接的業務需求,那么基於站點服務器的簡單方法實際上可能更可靠,支持更多種類的瀏覽器並且實際上更易於維護(因為所需的技能非常普遍)。

順便說一句,我應該說 - 'WebRTC' 對您來說可能是一個很好的搜索詞,以回答您問題的第一行。

httprelay.io與 WebRTC

優點:

  • 使用簡單
  • 快速地
  • 所有瀏覽器和 HTTP 客戶端都支持
  • 可用於不穩定的網絡
  • 開源和跨平台

缺點:

  • 需要運行一個服務器實例
  • 不支持數據流(尚)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM