是否有可能在Javascript中構建一個微觀(概念驗證)Web服務器?Javascript web服務器?
以前有沒有人做過這個?
編輯:這裏需要顯然明確的澄清。最終的問題是如何在瀏覽器發出的初始請求關閉後,將數據從服務器推送到瀏覽器。換句話說,如何讓瀏覽器接受服務器發起的後續請求。
是否需要將基於JavaScript的Web服務器安裝到瀏覽器中,或者是否有其他方法?
是否有可能在Javascript中構建一個微觀(概念驗證)Web服務器?Javascript web服務器?
以前有沒有人做過這個?
編輯:這裏需要顯然明確的澄清。最終的問題是如何在瀏覽器發出的初始請求關閉後,將數據從服務器推送到瀏覽器。換句話說,如何讓瀏覽器接受服務器發起的後續請求。
是否需要將基於JavaScript的Web服務器安裝到瀏覽器中,或者是否有其他方法?
如果你說你希望能夠將數據推到已經開始了接觸與您的服務器瀏覽器,我在做一些研究彗星服務器。
我對這件事一無所知,所以我只會傳遞一些給你的鏈接,希望能指引你正確的方向。
From Wikipedia Comet_(programming)
Comet是一個Web應用程序模型,其中一個長期持有的HTTP請求允許web服務器將數據推到瀏覽器,而瀏覽器明確請求它。 1彗星是一個總稱,包含了實現這種相互作用的多種技術。所有這些方法都依賴於瀏覽器中默認包含的功能,例如JavaScript,而不是非默認插件。 Comet方法與網絡的原始模型不同,瀏覽器一次請求完整的網頁。[3]
這裏有一個叫做APE的東西。我不知道這件事,但你可能會發現它有幫助。
APE是一種全功能的開放源代碼解決方案,爲阿賈克斯推。它包括一個彗星服務器和一個Javascript框架。 APE允許實現任何類型的實時數據流傳輸到Web瀏覽器,而無需在客戶端安裝任何東西。
這就是我在說的!保存我不得不重新發明輪子 – skyeagle 2010-11-21 20:41:17
也許問題是框架很差,但我根本得不到這與JS Web服務器有什麼關係?不過,波特的回答很好! – oberhamsi 2010-12-23 09:49:51
@oberhamsi:你投票給我了嗎?事實證明,這正是* OP所要求的。花點時間閱讀你上面的評論。來自OP表示它回答了這個問題。我離開這個答案的原因是,我做了你顯然沒有花時間去做的事情。我閱讀了其他評論中的對話,並推斷出這是OP所需要的,但不知道如何對其進行描述。如果你這樣做,你會看到OP想要*從服務器發起請求到瀏覽器,這隻有在瀏覽器發出初始請求時纔有意義。至少你有評論。 – user113716 2010-12-23 14:13:06
幾天前,我們在nodeJS上聊了一會兒。我不清楚使用node.js編寫的代碼是否可以在瀏覽器中運行(這正是我要做的)。你能否確認一個使用node.js編寫的web服務器是否可以在普通瀏覽器中運行? – skyeagle 2010-11-20 01:32:32
@skyeagle:你是什麼意思_「在瀏覽器中運行」_? – jwueller 2010-11-20 01:35:27
不,node.js是**服務器端**技術。它是基於Javascript的,所以當然有些代碼可能在瀏覽器和服務器之間是常見的,但是由於很多原因你不能真正在瀏覽器中實現服務器。 – Pointy 2010-11-20 01:35:53
Firefox還有一個附件(也可作爲單獨的桌面應用程序提供),稱爲Plain Old Webserver。它應該能夠運行一種特殊的服務器端JavaScript,它可以訪問Web瀏覽器的所有內部功能,包括本地文件和SQLite數據庫訪問,訪問瀏覽器首選項和歷史記錄以及可以完成的任何其他功能與一個Firefox插件。
你見過Juggernaut嗎? https://github.com/maccman/juggernaut/blob/master/README.md 你必須原諒,我不確定這是否正是你要找的東西,而且是一個小菜鳥,但自述讓它聽起來很適合你所描述的內容。
http://acme.com/software/js_httpd/
是用JavaScript編寫的一個小UNIX的HTTP服務器。
它從inetd運行,這意味着它的性能很差。但對於低流量的網站來說,這是相當不錯的。它實現了HTTP服務器的所有基本功能,包括:
js_httpd也可以用於通過用stunnel包裝HTTPS來提供服務。包括說明。
其他微小和/或怪異的web服務器(從inetd的所有運行):
這個Q&A的標題應該改變,以反映javascript Web服務器沒有被要求:)我也會通知一個可以用於單元測試的javascript web服務器,或者不是:https://developer.mozilla .ORG/EN-US /文檔/ Httpd.js/HTTP_server_for_unit_tests – Motin 2012-11-30 07:51:34
你可以嘗試「ewsjs是您的瀏覽器內的嵌入式Web服務器在開發基於Ajax的和單(...)
EWS提供了一個嵌入式Web服務器,它將Ajax應用程序看作是來自服務器的內容。你可以放入任何邏輯,並在瀏覽器中完全測試你的Ajax應用程序,而不需要runni一臺服務器。 EWS支持幾個關鍵特性:爲任何路徑註冊處理程序,爲參數化路徑註冊處理程序(如Sinatra路徑),爲自動註冊處理程序(當沒有其他處理程序匹配時),將一個路徑重寫爲另一個路徑(如在Apache中或nginx的),異步(確切地模仿真正的Ajax調用)」
爲了澄清,我的問題的原因是能夠實現一種‘窮人的’回撥機制通過HTTP。。換句話說,我希望能夠在客戶端瀏覽器中運行Web服務器,以便遠程服務器可以將數據發送到客戶端瀏覽器中的(嵌入式服務器)。聽起來令人困惑,但希望y,你明白了我的意思.. – skyeagle 2010-11-20 01:27:59
也許你應該爲谷歌的「網絡套接字」,但我不認爲你會能夠實現一個非常像你描述的架構。 – Pointy 2010-11-20 01:38:33
Node.js在服務器上運行(名稱爲_web-server_建議)。 – jwueller 2010-11-20 01:39:35