Playframework 小ネタ そのいち
こんにちは! はじめまして。
おとぼけエンジニアの堀田です。
あまり大層なことは書けませんが、本日よりぼちぼち更新していきます。
弊社では、自社サービスに一部、Scala+Playframework2+Slick3を採用しています。
当分は、Slick3で苦労したことやPlayframework2.4から2.5に移行した時にいろいろと戸惑ったことを
備忘録的に小ネタとして書いていこう思います。
今回はサーバーの状態を監視し、WebSocketを使用して、クライアントに通知する処理を 移行した時の内容を書いていこうと思います。
例えば、S3上にあるファイルが作成されたかを監視し、クライアントに通知したい時、WebSocketを使用して実現可能です。
(ChunkedとEventSourceを使う方法もあります。)
2.4まではPlayframework同梱のIteratee/Enumeratorを使用してごにょごにょとしていました。
以下のような感じです。
2.5からはIterateeは非推奨となり、Akka Streamsを使用することが推奨されています。 そのため、Iterateeに依存していたWebSocket.usingなどのメソッドも同様に非推奨となっています。
上記コードを2.5ベースに変更すると以下のようなコードになります。
S3のファイル監視については、AWS Lambda使用も考えられますが、 ひとまずは簡易に対応しております。
Akkaはまだまだ知らないことも多いので、 もっとフル活用できるようにしていきたいと思っております。
簡易ではありますが、 今後もこんなゆるい感じでぼちぼち更新していきます。
あ、忘れてた。。。(汗)
弊社サービスもどうぞ、よろしくお願いいたします!!