2010-11-20 7 views
6

Javascriptでマイクロ(概念証明)ウェブサーバーを構築することは可能ですか?Javascript Webサーバー?

誰もこれまでに行ったことがありますか?


EDIT:どうやら明示的な解明が、ここで必要とされています。問題は、ブラウザからの最初のリクエストが閉じられた後に、サーバーからブラウザにデータをプッシュする方法に関するものです。言い換えれば、ブラウザがサーバーによって開始された後続の要求を受け入れる方法。

javascriptベースのWebサーバーをブラウザにインストールする必要がありますか、または他の方法がありますか?

+2

明確にするために、私の質問の理由は、のようなものを実装することができるようにすることです』。言い換えれば、私はクライアントのブラウザでWebサーバーを実行できるようにして、リモートサーバーがクライアントブラウザの(埋め込みサーバー)にデータを送信できるようにします。 y、あなたは私の得点を得ます.. – skyeagle

+0

おそらくあなたは "ウェブソケット"のためにgoogleする必要がありますが、私はあなたが説明しているものと非常によく似たアーキテクチャを実装できるとは思いません。 – Pointy

+2

Node.jsはサーバー上で実行されます(_web-server_が示すように)。 – jwueller

答えて

3

あなたがあなたのサーバーとの接触を開始したブラウザにデータをプッシュすることができるようにしたいことを言っている場合は、私は上のいくつかの研究を行うだろうCometサーバー。

私はそれについて何も知らないので、ほんのちょうどあなたを正しい方向に向けるあなたへのいくつかのリンクを渡します。

From Wikipedia Comet_(programming)

彗星は、長年のHTTPリクエストをWebサーバがブラウザが明示的に要求することなく、ブラウザにデータをプッシュすることを可能にするには、Webアプリケーションのモデルです。 1彗星は、この相互作用を達成するための複数の技術を包括する傘の用語です。これらのメソッドは、デフォルト以外のプラグインではなく、JavaScriptなどのブラウザでデフォルトで含まれる機能に依存しています。 Cometのアプローチは、ブラウザが一度に完全なWebページを要求する、Webの元のモデルとは異なります。[3]

ここにはAPEというものがあります。私はそれについて知っていませんが、あなたが役に立つと思うかもしれません。

From the APE site:

APEは、Ajaxプッシュ用に設計されたフル機能のオープンソースソリューションです。コメットサーバーとJavascriptフレームワークが含まれています。 APEでは、クライアント側に何もインストールすることなく、Webブラウザにあらゆる種類のリアルタイムデータストリーミングを実装することができます。

+1

それは私が言っていること!私はホイールを再作成する必要があることを救います – skyeagle

+1

多分問題はフレームが貧弱ですが、これはJSウェブサーバーと何が関係しているのでしょうか? Pointyの答えは良いですが、! – oberhamsi

+3

@oberhamsi:あなたは私を落選させましたか?これはOPが望んでいたものであることが分かります。時間をかけてあなたの上のコメントを読んでください。それはOPからの質問に答えたと述べている。私がこの答えを残した理由は、あなたが明らかに時間を取らなかったことをやったことでした。私は他のコメントの対話を読んで、これがOPが必要としていたものだと推測しましたが、それをどのようにフレーズするかを知らなかった。同じことをすると、OPがサーバからブラウザへのリクエストを発信したいと思うことがわかります。このリクエストは、ブラウザが最初にリクエストした場合にのみ意味があります。少なくともあなたはコメントしました。 – user113716

15

RingoJSプロジェクト、またはNode.jsをご覧ください。答えは「はい」であり、「ミクロ」または「概念証明」だけではありません。

RingoJS

Node.js

express.js framework for node

+1

数日前にノード間で発生しました。 node.jsを使って書かれたコードが(私がやろうとしている)ブラウザで動かせるかどうかはわかりません。 node.jsを使用して書かれたWebサーバを通常のブラウザで実行できるかどうか確認できますか? – skyeagle

+1

@skyeagle:「ブラウザで実行する」_とはどういう意味ですか? – jwueller

+3

いいえ、node.jsはサーバー側の**技術です。それはJavascriptをベースにしているので、もちろん*いくつかのコードはブラウザとサーバーの間で共通する可能性がありますが、多くの理由で実際にはブラウザでサーバーを実装することはできません。 – Pointy

1

Plain Old Webserverと呼ばれるFirefox用のアドオン(別のデスクトップアプリケーションとしても利用可能)があります。それは、ローカルファイルとSQLiteデータベースへのアクセス、ブラウザの設定と履歴へのアクセス、および実行可能なその他のものを含む、Webブラウザのすべての内部機能にアクセスできる特別な種類のサーバーサイドJavaScriptを実行できるようになっていますFirefoxのアドオンを使って

0

あなたはジャガーノートを見ましたか? https://github.com/maccman/juggernaut/blob/master/README.md これはあなたが探しているものが正確かどうかは分かりませんが、ちょっとした騒ぎですが、readmeはあなたが描いているものにうってつけのように聞こえます。

0

JS HTTPD

http://acme.com/software/js_httpd/

JavaScriptで書かれた小さなUNIX HTTPサーバです。

inetdから実行されます。これは、パフォーマンスが低いことを意味します。しかし、トラフィックの少ないサイトでは、それは十分です。

  • ".." filename snoopingに対するセキュリティは、HTTPサーバーのすべての基本機能を実装しています。
  • 一般的なMIMEタイプ。
  • 後続スラッシュリダイレクト。
  • index.html
  • ディレクトリ一覧。

js_httpdは、stunnelでラップすることによってHTTPSを処理するために使用することもできます。説明書が含まれています。

その他の小さなおよび/または奇妙なウェブサーバ(inetdのからすべて実行):

http://acme.com/software/js_httpd/

+0

このQ&Aのタイトルは、javascript Webサーバーに求められていないことを反映するように変更する必要があります。私は単体テストや何のために使うことができるjavascript Webサーバーについても知らせていました。https://developer.mozilla .org/ja-ja/docs/Httpd.js/HTTP_server_for_unit_tests – Motin

0

あなたは「ewsjsを試みることができるAjaxベースおよびシングル開発する場合は、ブラウザ内の内蔵Webサーバです。 (...)

EWSは、Ajaxアプリケーションをサーバーから来ているかのように見える組み込みWebサーバーを提供していますAjaxアプリケーションを任意のロジックに入れて、runniなしでブラウザ内で完全にテストすることができますサーバー。

EWSはいくつかの重要な機能をサポートしています:任意のパスのハンドラの登録、Sinatraルートのようなパラメータ化されたパスのハンドラの登録、自動ハンドラの登録(他のハンドラが一致しない場合)、あるパスの別のパスの書き換えまたはnginxの)、非同期(正確に)真のAJAX呼び出しを模倣HTTP経由貧乏人の 『コールバックメカニズム」https://github.com/deitch/ewsjs