Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Node.jsで書いた WebSocketサーバを Scalaに書き換えて遊んだ話(仮)

Node.jsで書いた WebSocketサーバを Scalaに書き換えて遊んだ話(仮)

Scala 関西 Summitの懇親会LTです。
http://summit.scala-kansai.org/

LTは3分しかなかったので補足。

スマートフォンをコントローラーにデジタルサイネージで遊ぶゲームをつくるのにつくったwebsocketのサーバをPlay 2.5 で書きました。
以前はNodeJsで書いていたものをScalaで書き直しました。
(ゲーム自体はつくりかけ)

ユーザが一度接続するとユーザ情報を格納するアクターが生成されて、ユーザの固有情報を記録しています。スマートフォンから受け取った情報を元にアクターがakka streamで構築したストリームメッセージをなげて、Unityに渡して描画をしています。

Tomohiko Himura

October 08, 2016
Tweet

More Decks by Tomohiko Himura

Other Decks in Programming

Transcript

  1. Node.jsͰॻ͍ͨ
    WebSocketαʔόΛ
    Scalaʹॻ͖׵͑ͯ༡Μͩ࿩(Ծ)
    2016-10-08 Scalaؔ੢Summit2016

    View Slide

  2. ͻΉΒ ͱ΋ͻ͜
    twitter: @eielh
    from: ޿ౡ
    ҰԠakkaΛษڧ͍ͯ͠Δ

    View Slide

  3. 重要なお知らせ

    View Slide

  4. 広島の大きめな
    コミュニティイベントで
    Scala系の人呼びたい

    View Slide

  5. 2017年2月25日
    オープンセミナー広島

    View Slide

  6. _人人人人人人人人人人人人_
    > Scala Matsuriと被った <
     ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

    View Slide

  7. 別の機会にお誘いします

    View Slide

  8. Node.js -> Scala

    View Slide

  9. 3分じゃ話すことない

    View Slide

  10. ざくっと感想
    • Play 2.5 つかった
    • akka & akka stream
    • nodeに比べて
    • 初期学習コスト高い
    • 慣れるとやりたいことやりやすい
    • 以下から学べた
    • play.api.libs.streams.ActorFlow
    • play.core.actors.WebSocket

    View Slide

  11. 作ったものの概略図
    端末から流れてくるイベントに
    サーバでユーザ情報を付与して集約して
    別のマシンに流す

    View Slide

  12. 出力先をUnityにしたデモ
    会場の人が多人数プレイできるゲーム

    View Slide

  13. View Slide

  14. hayashiさんが8ポイント
    で優勝してました

    View Slide

  15. まとめ
    • 慣れると使いやすい
    • 今後
    • パフォーマンスなど比較したい

    View Slide