Septeni Engineer's Blog

セプテーニ・オリジナルのエンジニアが綴る技術ブログ

Play FrameworkでServer-Sent Events(SSE)を使ってServer pushする方法あれこれ

あけましておめでとうございます。
初めまして、2017年4月に中途入社した張沢と申します。

今回はPlay FrameworkでServer-Sent Events(SSE)を使用してServer pushを行う実装方法について書きます。 WebSocketの情報は検索すると色々見つかりますが、SSEの記事やサンプルコードはあまり見かけないため…。

Play Framework 2.5からstream関連のAPI実装がAkka Streamに変わりました。そのため、Server pushのAPIでもAkka Streamを使用する必要があります。この記事ではSSEでのAkka Streamの使用方法について紹介します。

Server-Sent Eventsとは

Client(ブラウザ)へHTTP server pushを実現するための技術の1つで、以下のような特徴があります。

  • HTTPを利用したストリーム通信
  • 通信はServerからClient(ブラウザ)への一方向
  • UTF-8エンコードの文字列のみ送信可能
    • Base64に変換することで、画像データやUTF-8以外の文字列も送信できます
  • IEやEdgeではサポートされていませんが、polyfillが存在します
続きを読む

PlayFramework 2.6.X のDIについて

これはScala Advent Calendar 2017の11日目の記事です。

こんにちはセプテーニオリジナルの池田です。

弊社では社内勉強会が定期的に開かれており
先月 @kawachiさんより「DIを正しく知って便利に使おう」という発表がありました。

私自身社内での勉強会を受ける前までは、javax.injectGuiceのDIが使われる背景やメリットをあまり理解していませんでしたが、発表を聞いて、DIの歴史的な背景やPlayでのベストプラクティスな使い方など勉強になりました。

今回は、勉強会の復習にPlayFrameworkのDI周りについて書きます。

続きを読む

9/11に初めて登壇しました

こんにちは、たかこです。
社内でジョブチェンジしてScalaエンジニアになりました。

9/11に初めて登壇していて、登壇までの個人の流れを書きます。

会社として参加記事は @takashima0411 さんが書いてくれた、こちらをどうぞ。
Scala関西Summit2017に参加してきました! - Septeni Engineer's Blog

そもそもどうして発表しようと思ったのか。

社内でScala関西に参加する出張者を公募するチャットが流れていたのを見て、
下記の2点の理由で応募しようと思いました。
1. Scalaのイベントに参加して、色々社外でもScalaのことを学んでみたいと思った
2. 地元が和歌山なので大阪で務めている友達が多く久々に会えるなあと思った

ただ、この時点でScalaを学んで2ヶ月もたってなくて、わかるセッションがあるのか不安でした。
外部のScala講師の方に、私でもわかるレベルのものもあるのか確認して、
社内でも倍率高いんですと雑談していると
「発表者になれば大胸はっていけますよ」と言われ「確かに」と思って発表を申し込みました。

資料作成

8月中旬ぐらいから資料を作成して月末に参加者で社内練習会 + フィードバックをやりました。
社内のうちはマサカリ投げるよーと、たくさんご指摘いただきました。
その中で1番響いたのは、
Scalaを4ヶ月 *しか* やってないのではない、4ヶ月 ** やっているんだよ。」
という言葉で、資料の構成を作り直しました。

その間、最初からずっとレビューし続けてくれた
@morizo999 さんと @paralleltoさんには頭が上がりません。
いつも本当にありがとうございます。
(発表が終わってから、みんなでスタバのラテを楽しく飲みました)

登壇してみて

結果からいうと、時間が足りるか焦って、早めに終わってしまいました。
だめだったと思っているのは下記2点です。
1. 事前の練習では20分少し超えるぐらいだと思っていて、その20分に質疑応答が含まれていると思ってなかった。
2. ↑の原因で、早めに終わらさなきゃとすごく焦ってしまった。

次回がもしあれば、ちゃんと事前に確認して練習通りゆっくり話せるようにするか、
焦りを考慮してもう少し長めのスライドを作るようにします。

アンケート結果を見て

概ね満足していただけたようで、すごく嬉しかったです。
同時に勇気を出して挑戦してみて良かったなぁと思いました。

最後に

本当に社内・外を含めたくさんの方に助けていただきました。
ありがとうございました!