問題タブ [haskell-warp]
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.
haskell - Warp/WAI を使用した POST の処理
Network.Wai
andを使用して POST リクエストからデータを取得するにはどうすればよいですWarp
か?
たとえば、単純な Web ページがあるとします。
ユーザーが送信をクリックしたときに、このデータを取得するにはどうすればよいですか? GET データを取得する方法を知っています ( queryString
)
例えば
haskell - 有効期間の長いリソース (ファイル ハンドル) を使用して Web サービスをワープする
すべてのリクエストからアクセスしたい長寿命のリソースを持つワープを使用してWebサービスを作成する方法を理解しようとしています(つまり、リクエストごとではなく、サーバーの存続期間中リソースが存在するようにしたい)。これは ResourceT の使用であると想定していますが、実際にこれをどのように行うかはわかりません。
私の特定の用途は、現在状態モナドにラップされているファイルハンドルを公開したいということです。warp と ResourceT を使用するときにこれが意味をなさない場合は、喜んでこのアプローチを変更します。このコードの初期バージョンは、コード レビューで確認できます: https://codereview.stackexchange.com/questions/9177/my-simple-haskell-key-value-file-store
前もって感謝します、
マット
haskell - Warpをデーモン化モードで実行するにはどうすればよいですか?
私はHaskellWarpを使用して構築されたピクセルサーバーに取り組んでおり、デーモンモードで実行する方法を見つけるのに苦労しています。
ワープはうまくrun
機能します-Network.Wai.Handler.WarpからHTTPを提供し、runTLS
Network.Wai.Handler.WarpTLSからHTTPSを提供し、新しいスレッドを生成することで両方を実行できます。
私の問題は、MissingH(System.Daemon)からdetachDaemonを使用して、Ubuntuでサーバーをデタッチしてバックグラウンドで実行する方法を理解することです。
私のMain.hsで、次のdetachDaemon
ようなアクションを追加しようとしました。
しかし、プログラムはエラーなしで、実行時に何も表示されずにサイレントに終了しますps -ef | grep snowhuskyd
。
どのように使用すればよいdetachDaemon
ですか?Warpでも可能ですか?detachDaemon
Webでの使用例は1つも見つかりません。助けをいただければ幸いです。
haskell - ワープHTTPサーバーでのAJAXの使用
WARPがクライアント側とどのように相互作用する可能性があるかを理解しようとして少し問題があります。サーバー側をWARP経由で構築し、Javascriptクライアント側を使用する場合。仮に、クライアント側とサーバー側の間のブリッジとしてAJAXを使用できますか?
haskell - ワープサーバーのResourceTMonadTransformerにMonadThrowインスタンスを追加する方法
Warpを使用して単純なリバースプロキシサーバーを構築しようとしています(他にも多くの既製のオプションがあるため、主に私自身の教育のためです)。
これまでのところ、私のコードはほとんどWarpドキュメントから削除されています(ファイルへの出力の書き込みは単なる暫定テストであり、ドキュメントからも削除されています):
ResourceT Monad内でNetwork.HTTP操作を実行しようとすると、コンパイラーはそれがMonadThrowのインスタンスであることを正しく要求します。私の難しさは、これをモナドスタックに追加する方法、またはそのインスタンスをResourceTに追加する方法です。以下のコードでのコンパイラエラーは次のとおりです。
HTTP行を削除すると、MonadThrowインスタンスは不要になり、すべてが正常に機能します。
新しいカスタムモナドをMonadThrowのインスタンスとして定義した場合、それを使用してサーバーを実際に実行するにはどうすればよいですか?この例外処理をスタックに導入する(またはコンパイラーを満足させる)適切な方法を探しています。
ありがとう/O
haskell - Warp/WAIによるスレッドセーフ状態
/を使用してその状態をState
モナドに格納するWebサーバーを作成したいと思います。このようなもの:wai
warp
もちろん、コメント行は機能しません。目的は、カウンターを状態モナドに格納し、要求ごとにその増加する値を表示することです。
また、スレッドセーフを取得するにはどうすればよいですか?ワープはミドルウェアを順次または並行して実行しますか?
IORef
州で利用できるオプションは何ですか?このシナリオで使用できる以外に何かありますか?
州が安全を提供していることは理解していますが、ワイは州を許可していないようです。
必要なのは、他の場所から呼び出すことができる非常に単純なシングルスレッドRPCだけです。Haxr
パッケージには別のWebサーバーが必要ですが、これはやり過ぎです。Node.JSからのHaskellの呼び出しを参照してください-提案がなかったので、Wai/WarpとAesonを使用して単純なサーバーを作成しました。しかし、WAIは同時実装をサポートするように設計されているため、事態は複雑になっているようです。
windows - WAI、WindowsでWarpを実行する際の問題
(Wai)で(Warp)用の簡単なHelloWorldアプリケーションを作成しました。より複雑なアプリと同様に、UbuntuLinuxでも正常に動作します。しかし、このHelloWorldアプリをWindowsで実行することすらできません。Windows 7 Home Premium SP132ビットでHaskellPlatform(インストールファイル2012.2.0.0)を使用しています。
これは(Linuxで動作する)コードです:
これらは、コードをロードして実行したときのGHCIメッセージです(メイン):
コードをロードした後、Webサーバーが実行されていないように見えます。
私はいくつかの一般的な落とし穴に遭遇しているかもしれないと思います-もしそうなら私に知らせてください。
すべてのフィードバックを事前に感謝します。
(更新:以下の回答に記載されているように、これらのエラーはCtrl-Cアクションのみが原因であり、ランタイムが強制終了され、質問のWai / Warpの予期しない動作の一部ではありません。)
Ctrl-Cを数回押して発生すると、次のメッセージまたはさまざまなメッセージが表示されます。
haskell - OPTIONSメソッドを処理する最も簡単な方法は?
YesodJSONサーバーのクライアントをangular.jsで作成しています。ヘッダートラフィックを調べると、ChromeがOPTIONSメソッドを送信しているようですが、ハンドラーはこれを拒否します。調査によると、次のようなものを返送する必要があります。
makeApplication
足場を見ると、それが私がたどりたい道の始まりであることがわかります。
当初は変更が必要だと思ってconf
いましたが、OS環境を管理していることが理解できます。応答ヘッダーをグローバルに変更するための最も簡単な場所はどこですか?