ZeroMQ ソケットを介して通信するサービスがあり、そのサービスへのアクセスを単一ページの Web アプリケーションに提供したいとします。REST API (制御とクエリ用) と WebSockets (監視用) を提供するサービスと Web アプリが対話するようにしたいと考えています。これは、ZeroMQ を最初のサービスと対話することによって行われます。これを Scala で書きたいと思います。
その 2 番目のサービスを構築するために、どのようなオプションを利用できますか?
非常に統合されたソリューションは、これに Akka/Play2 を使用することです。
Akka は akkas ZeroMQ Moduleを介して ZeroMQ ソケットと通信するコア コンポーネントであり、Scala-API と Akka/Actor の優れた統合を提供します。この Akka/Actor システムは、主に HTTP エンドポイントの定義スタイルが異なるplay-miniまたはplay2を使用して、HTTP/WebSocket 経由でアクセスできます。
REST API については、 Sprayをお勧めします。Spray は、Web サービスを定義するための非常に簡潔で柔軟な DSL を備えた優れたライブラリです。スプレーを現在のプロジェクトに統合しましたが、とても満足しています。play-mini に関しては、私の知る限り、それは play2 プロジェクト全体に依存するため、必要のないものがたくさんあることになります。