7

Haskell websocket ライブラリの違いと、それらが Yesod でどのように機能するかを誰かが説明できるかどうか疑問に思っています。

これから説明する 2 つの主な例は、このチュートリアルの Network.Websocketswai websockets パッケージです。

wai パッケージの良い例やチュートリアルを見つけることができませんでした。yesod は wai を使用しているため、単純なネットワークのものと比較してどのような利点がありますか? Network.Websockets の代わりに、または Network.Websockets と組み合わせて使用​​することを意図していますか?

例を見たことがありますが、それらが実際に yesod 環境にどのように適合するかを理解できませんでした。Yesod で websocket がハンドラーや IO などにどのように関連するかを誰かが説明できれば、それは素晴らしいことです。

注:この質問この質問を見たことがありますが、Websocket が Yesod に適合する場所を実際に説明していないため、それらを適用する方法がわかりません。

4

2 に答える 2

4

実際のところ、Websocket は通常のリクエスト/レスポンス ペアの範囲外です。そのため、通常の Yesod ハンドラーは単純に websocket の使用を開始することはできません。それは理想的であり、おそらく将来的にそのサポートを追加する予定ですが、私はまだそれを行う方法を考え出していません (アイデア/提案/議論は大歓迎です!)。

その間、websocket を統合する方法は、抽象化のレイヤーをドロップダウンし、warp で wai-websockets を直接使用することです。それを行う方法を説明するためにリンクする回答。

あなたの要件が何であるかはわかりませんが、eventsource は既存の要求/応答パラダイムにはるかによく適合し、yesod-eventsource パッケージにより、Yesod との統合が容易になります。したがって、それが要件を満たしている場合は、チェックアウトすることをお勧めします。(Eventsource には、HTTP リバース プロキシで正しく動作するという利点もあります。)

更新この回答はもはや正確ではありません。最新情報については、Davidの回答をご覧ください。

于 2014-03-02T06:37:59.190 に答える