問題タブ [nitrogen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
erlang - ローカルホスト以外のマシンから窒素/inetsサーバーにアクセスできません
このフォーラムでの多くの議論のおかげで、私は窒素に基づいて家庭で使用するために計画していたアプリケーションを構築できるはずであることがわかりました。
そこで、窒素のチュートリアル、デモ、ドキュメントに出くわし、自己完結型のinets/窒素サイトに基づいていくつかのテストを開始しました。別のPCから新しいWebサイトにアクセスしようとするまで、すべてが順調に進んでいました。もちろん、WANリクエストをLANにルーティングするために、最初にボックスを調整する必要がありました...しかし、検索、読み取り、テストを1日行った後も、まだ行き詰まっています...
私がテストしたもの:
- イントラネットIPアドレスまたはローカルホストを使用してローカルホストからWebサイトを呼び出す:OK
- ローカルホストから、静的ページと別の「my_page.erl」パスへのアクセス:OK
- lanアドレスを使用した別のPCからのアクセス:wiresharkを使用してイーサネットフレームをキャッチできますが、接続がタイムアウトして失敗します。
- wanアドレスを使用した別のPCからのアクセス:wiresharkを使用してイーサネットフレームをキャッチできますが(アドレス変換後)、接続はタイムアウトで失敗します。
- wanアドレスを使用したローカルPCからのアクセス:イーサネットフレームをキャッチしてwiresharkを使用できますが、接続がタイムアウトして失敗します。
- コードにいくつかの?DEBUGマクロを入れましたが、どれにも到達しません。
- 静的ファイルへのアクセスを試みました:同じ動作。
- netstat -apを使用して、プロセスbeam.smpが正しいポートをリッスンしていることを確認しました:OK
- smartsniffを使用して外部PCの応答フレームを確認しました。LANアクセスとWANアクセスの両方で応答がありません。
- さまざまなポートとポートルーティングをテストしました。
明らかなことを見逃す必要がありますが、これを機能させるために構成するものはありますか?または私ができるテスト?もうアイデアがないからです。
コンテクスト:
- WindowsXP32で実行されているブラウザfirefox16.0.2およびchromium21.0.1138
- Ubuntu12.04で実行されているサーバー
- デフォルトの窒素/イネットアプリケーション(ポートを8020に変更)
- Erlang 15B02
- nprocreg、0.2.0
- parsetools、2.0.7
- common_test、1.6.2
- mnesia、4.7.1
- ssl、5.1
- public_key、0.16
- コンパイラ、4.8.2
- xmerl、1.3.2
- runtime_tools、1.8.9
- 暗号、2.2
- inets、5.9.1
- sasl、2.2.1
- stdlib、1.18.2
- カーネル、2.15.2
erlang - NitrogenWebサーバーでのファイルダウンロード用のコンテンツヘッダーの設定
Nitrogen Webサーバーでファイルを動的に生成していて、ダウンロードダイアログにファイルの名前をブラウザに表示させたい。
現在、私はこのようなものを設定しています-
これにより、ブラウザはファイルの保存を要求できますが、ファイルの名前はURLの名前(窒素erlページ)です。
ブラウザがユーザーに同じファイル名を表示するように、コンテンツにファイル名を設定するにはどうすればよいですか?
私はこのような何かがこのようなJavaベースのサーバーで達成できると思います-
私はフランベジアの上に窒素を使用しています。
erlang - 窒素/inets erlangで複数のユーザーを管理する方法
Nitrogen/Inets を使用して、家族で使用するための簡単な Web サイトを構築しています。単一のクライアントが Web サーバーに接続されている限り、現在のバージョンは期待どおりに動作します。
新しいユーザーに接続しようとすると、2 つのセッションが同じ状態変数を共有しているように見えます。
- ブラウザ 1: インデックス ページを読み、[接続] をクリックして、user1 としてログインします。
- ブラウザ 2: インデックス ページを読みます。ユーザーは user1 です --> OK ではありません - ログインに移動し、user2 として入力します。大丈夫そうです。
- ブラウザ 1: ホームページをリロード --> ユーザーが user2 に変更 --> 非常に悪い :o(
さらに、タイムアウト カウンターを表示するディスプレイを含めました -> 値は両方のブラウザーで同期されます。
複数のユーザーを同時に管理するにはどうすればよいですか? 私が書いたコードは次のとおりです。
index.erl の抜粋
login.erl の抜粋:
html - 窒素でのオーディオおよびビデオタグの使用
まだ個人のWebサーバーで作業しているときに、Nitrogen内でhtml5オーディオおよびビデオタグを使用しようとしていました。
#audioレコードも#videoレコードもないので、窒素によって生成されたページに直接htmlテキストを挿入することにしました。結果は次のようになります。
私の理解では、オーディオタグはクライアントブラウザによって直接解釈されることになっており、コードには窒素IDやイベントオブザーバーがないため、これは機能するはずです。
しかし、Firefoxからこのコードを参照すると、コントロールが開いているのが簡単にわかり、オーディオ要素が消えてしまいます。
窒素によって生成されたコード全体をコピーして貼り付け(htmlソースページを表示し、窒素プロジェクトの元にあるファイルにコピーして貼り付け)、ブラウザーで開くと、正常に機能します。窒素プロジェクトの検索統計を想定すると、相対パスは正しいです。私も絶対パスを試しましたが、成功しませんでした。
知らない
- 窒素がURL分析で行うように、「.._ .._ Mymusic_subdir_song.ogg」という形式のファイル名を作成する場合、
- または、別のディレクトリを使用してパスを開始する場合は、
- またはそれが単に私が考えているように機能しない場合。
- ..。
編集:いくつかの補足情報:
次の変更を行いました。
site / staticディレクトリにいくつかのoggファイルを含む1つのディレクトリを作成し、site/staticに静的test.htmlファイルを移動します。test.htmlを直接開いた場合->OK。Webサイトからリダイレクトした場合->OKではありません。
窒素アプリケーションルートのディレクトリのコピーと私のWebサイトからのアクセスを使用した同じテスト->OKではありません
Webページの情報があいまいなため、PCに存在しないファイルにアクセスするようにtest.htmlを変更しました->同じ動作。
デバッガーを使用して、リクエストがどのように管理されているかを理解し、続行すると思います...
編集2:
デバッガーを使用して、wf_core:run_catched()が数回呼び出されていることを確認できます。最初の呼び出しは、静的ファイルにリダイレクトする私のページのイベントを処理するときです。
静的htmlファイル自体を処理する2回目。
my_music / song.oggに等しいパスでfinish_static_request()を3回処理すると、回答の処理で迷子になります。別のwf_core:run_catched()が並行して呼び出されましたが、私はそれに従いませんでした...
ファイルにアクセスできることを確認できました。htmlファイルにいくつかのオーディオタグを追加し、DownloadHelperFirefoxプラグインを使用して既存のファイルを「ダウンロード」することができました。
私の理解では、パスは正しいです(少なくとも、ファイルをsite / staticのサブディレクトリに配置すると)、サーバーはファイルを取得して送信でき、ブラウザーはオーディオタグとビデオタグを認識しますが、リンクオーディオタグ内にタイプ定義を追加しましたが、埋め込まれたオーディオ/ビデオリーダーとファイルの間は失われます。
続行するアイデアはありますか?
編集3:
ついにできた。Chopsが示唆しているように、パスを定義するのではなく、型の関連付けを定義するために、inetsサーバー構成に入る必要がありました。etc / inets_httpd.erlenvに次の定義を追加しましたが、機能します。
:o)
erlang - 窒素サーバー
Nitrogen Web Frameworkに使用するのに最適なサーバーを知りたいですか?サイトにリストされている5つのうち、私はすでにInets(本番環境には推奨されません)とWebMachineを削除しました。Mochweb、Yaws、Cowboyだけを残しました。また、サイトでNitrogen /YawsWindowsバイナリをダウンロードできないことにも気づきました。何か特別な理由はありますか?
erlang - ノードが実行されていません。窒素
シェルで入力するbin/dev page foo
とシェルが返されNode is not running
、ログを確認してメッセージに気付きましたepmd: epmd: node name already occupied nitrogen
次に、シェルで入力epmd -names
すると返されました
ランニングepmd -debug
は与える
ノードを停止できません。試してみると、データベースでアクティブになっているようです
エシェルでは、以下を受け取りました
実行するために、Eshell にこのノードを認識させる方法はありますbin/dev function
か?
post - 投稿パラメータから読み取る方法は?
テキストファイルを解析する必要があります。このファイルは post パラメーターにあります。次のようなコードがあります。
次に何をすべきですか?それを解析する方法は?