問題タブ [cowboy]
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 - Web ページへのアクセスをログに記録する最良の方法
私の Web サイトの 1 つは、Cowboy サーバーで Nitrogen を使用しています。Apache が access.log で行うように、Web ページへのすべてのアクセスをログに記録したいと考えています。それを行う最良の方法は何ですか?
http - コマンド 'generate' が見つかりません。rebar でコンパイルしています
私はこのブログをフォローしています: http://maplekeycompany.blogspot.se/2012/03/very-basic-cowboy-setup.html
要するに、ブログの人物と同じように、rebar を使用してアプリケーションをコンパイルしようとしています。コマンドを実行するまで、すべてがスムーズに進みます。
これにより、次のエラーと警告が表示されます。
同じエラーで同様の投稿を見つけました:
コマンド 'generate' が理解できないか適用できない
問題は reltool.config にあると思いますが、続行する方法がわかりません。パスを次のように変更しました: {lib_dirs, ["home/user/simple_server/rebar"]}
パスに問題はありますか?rebar がすべての src ファイルと、アプリケーションをコンパイルしてビルドするために必要な rebar ファイルにアクセスするにはどうすればよいですか?
erlang - Rebar を使用した OTP リリースの一部としてヨーを使用する方法は?
依存関係の管理とリリースの処理に関する rebar のドキュメントに厳密に従い、以前の質問の 1 つに対する受け入れられた回答に記載されているものと同様のリリースを作成しようとしました。
ただし、rebar によって生成された OTP リリース内に OTP アプリケーションとして含まれるヨーを作成することはできません。
これが私がすることです:
- 公式の rebar ドキュメントに従ってリリースを作成します (完了、シンプルな gen_server を /rel/myapp/bin/myapp start で実行できます)
- プロジェクト ディレクトリの rebar.config ファイルで yaws 依存関係を指定します。
- 実行
rebar get-deps
(これは yaws と ibrowse をプルします) - これを に追加
reltool.config
:{app, yaws, [{incl_cond, include}]}
- のアプリケーションのリストに yaws を追加します
myapp.app.src
rebar compile generate
:
...
==> Leaving directory '/myapp/deps/yaws/rel'
==> yaws (compile)
yaws.erl:13: can't find include file "yaws_appdeps.hrl"
yaws.erl:220: undefined macro 'YAWS_APPDEPS'
yaws.erl:174: function start_app_deps/0 undefined
yaws.erl:194: function start_app_deps/0 undefined
ERROR: Command [compile] failed!
ノート:
公式の yawsドキュメントは、この問題に関してあまり説明していないようです。
ヨーをカウボーイに変更すると、そのようなエラーは発生しません。
アップデート
これが私のディレクトリ構造です:
.
├── apps
│ └── myapp
├── deps
│ ├── ibrowse
│ └── yaws
└── rel
└── files
erlang - Cowboy で開発する場合、ホット コード リロードを行うにはどうすればよいですか?
私は Cowboy と erlang.mk で開発しており、現在の流れは次のとおりです: 1. vi でコードを変更し、保存し、make を実行します 2. Cowboy を閉じ、Cowboy を再度起動します (トレース/デバッグの目的でコンソール モードで Cowboy を実行しています)
Cowboy をできるだけ少ない遅延で自動的にリロードして再起動させる方法はありますか? メイクファイルにCowboy stop and startを追加できることは理解していますが、より良い/より応答性の高い方法があるでしょうか?
rubyio の sync パッケージがあるのを見ましたが、アプリに直接フックするのは非常に複雑に思えます。
erlang - カウボーイの Cowboy_http_handler はどうなりましたか?
誰か、Cowboy サーバーの最後のバージョンで、cowboy_http_handler がどこにあるのか教えてください。
websocket - Cowboy での http ハンドラーと websocket ハンドラー間の通信
別のカウボーイ ハンドラーからデータを取得する Websocket アプリをカウボーイで作成したいと考えています。カウボーイの Echo_get の例を組み合わせたいとしましょう: https://github.com/ninenines/cowboy/tree/master/examples/echo_get/src
WebSocket の例を使用
https://github.com/ninennines/cowboy/tree/master/examples/websocket/src
その例では、Echo への GET リクエストが websocket ハンドラを介して「プッシュ」を html ページに送信するようにします。
それを行うための最も簡単な方法は何ですか? 「パイプ」演算子を簡単な方法で使用できますか? それらの間でメッセージを渡すために gen_something を作成して仲介する必要がありますか? ハンドラーのグルー コードを示すサンプル コードを含む回答をいただければ幸いです。2 つのハンドラーをどこから接続すればよいかわかりません。
erlang - Erlang の Cowboy がシャットダウン時にクラッシュする
カウボーイ ハンドラーに関連する Erlang vm のシャットダウン時に多くのエラーが発生します。cowboy:start_http() を実行する start_listeners() 関数を実行する simple_one_for_one スーパーバイザーがあります。
すべてが開始され、エラーは発生せず、リクエストは正常に処理されます。
erlang VM をシャットダウンすると、次のようになります。
[エラー] スーパーバイザーbitter_rpc_supには、コンテキストshutdown_errorで理由が殺された未定義の終了時にbitter_rpc_sup:start_listeners()で開始された子bitter_rpc_http_idがありました
そして、カウボーイプロセスが強制終了され、異常終了することに関連するその他のエラーの束。カウボーイは、シャットダウンの OTP 規則に従っていませんか? スーパーバイザーでシャットダウンをインターセプトし、すべてのカウボーイ プロセス/ランチ プールを手動でシャットダウンする方法はありますか?
このエラーを押しつぶすには、どこを調べればよいですか?
erlang - ハンドラーで erlang の content_type_accepted メソッドを使用して Json データを POST する方法
jsonデータはこちら
メソッドとボディが表示されますが、json データをキャッチしようとしても実行できません。