Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Node.jsだけじゃないPlayで作るWebsocketサーバ
磯○~!Websocketサーバー作ろうぜ~~!
中○!じゃあ早速Node.jsをインストーr
まったく磯○は短絡的なんだから~Node以外でもWebsocketサーバは作れるんだぜ?
…ほ、本当かよ中○!正直ボクはJavascriptが苦手なんだ!早くその方法を教えてくれよ!
土下座(げざ)れ。
………。
Not Only Node.Js   という訳で今回のLTは     Javaで     Playframeworkで     かんたんWebsocketサーバ   をお送りします   (土下座る必要はありません)
New generation framework for Java and Scala                    Playframework
Playframework みんな知ってる新世代Web FW 最近世間的にもアツさが高まってきた。 JavaとScalaで使える 僕はJavaしか使えない(キリッ   WebSocketにも対応!
Playframework   Playだと何がうれしいの?     Java/ScalaのFWなので既存資産がいっぱい     Controllerの書き方をちょっと変えるだけで簡     単にWebSocket対応Controller...
I want to say “Hello World”              HOW TO
ゴタクはいいから早く作って見せてくれよ、中○!
まったく磯○はせっかちだなぁ~焦らなくても今教えてやるよ~
…た…頼むよ…。
HOW TO   手順は2つ     routesファイルにルーティング設定書く     ControllerをWebSocketオブジェクトを返すよ     うに書く     以上
HOW TO   routes     普通のRESTエンドポイントと一緒     例えばクエリパラメータを取りたければ、こう     GET   /ws controllers.Application.ws(id:Int)
HOW TO   controller       通常のcontroller         public   static Result ws(int id){…}       これを         public   stati...
HOW TO   controller     型パラメータ<A>はクライアントとやり取りす     るメッセージの型を指定する。       文字列とかJsonとか指定できる。     戻りの型のWebSocketクラスは抽象クラス ...
HOW TO   controller     こんな感じ
HOW TO   controller       クライアントからメッセージを受け取った時の処理は、        In<A>にコールバックとして設定する       クライアントにメッセージを送信したい時は、Out<A>       ...
HOW TO   こんな感じ
見づらいぞ、中
Gistに貼っておいてやったぞ、磯○!https://gist.github.com/kamekoopa/5268800
(反応がない。ただの屍のようだ。)
The thing you should see is only here                    Conclusion
Conclusion   Node.jsだけじゃないんだよ       Playframeworkという選択肢       パフォーマンスもNodeに劣らない   Java/Scalaで書ける安心感       静的型付き言語    ...
おわり
Playで作るwebsocketサーバ
Playで作るwebsocketサーバ
Playで作るwebsocketサーバ
Upcoming SlideShare
Loading in …5
×

Playで作るwebsocketサーバ

社内LT資料

  • Be the first to comment

Playで作るwebsocketサーバ

  1. 1. Node.jsだけじゃないPlayで作るWebsocketサーバ
  2. 2. 磯○~!Websocketサーバー作ろうぜ~~!
  3. 3. 中○!じゃあ早速Node.jsをインストーr
  4. 4. まったく磯○は短絡的なんだから~Node以外でもWebsocketサーバは作れるんだぜ?
  5. 5. …ほ、本当かよ中○!正直ボクはJavascriptが苦手なんだ!早くその方法を教えてくれよ!
  6. 6. 土下座(げざ)れ。
  7. 7. ………。
  8. 8. Not Only Node.Js という訳で今回のLTは  Javaで  Playframeworkで  かんたんWebsocketサーバ をお送りします (土下座る必要はありません)
  9. 9. New generation framework for Java and Scala Playframework
  10. 10. Playframework みんな知ってる新世代Web FW 最近世間的にもアツさが高まってきた。 JavaとScalaで使える 僕はJavaしか使えない(キリッ WebSocketにも対応!
  11. 11. Playframework Playだと何がうれしいの?  Java/ScalaのFWなので既存資産がいっぱい  Controllerの書き方をちょっと変えるだけで簡 単にWebSocket対応Controllerに変身  Playのルーティングルールの上で動く  RESTなエンドポイントと同居したり  複数のWebsocketエンドポイント作ったり  URLからパラメータ取ったり
  12. 12. I want to say “Hello World” HOW TO
  13. 13. ゴタクはいいから早く作って見せてくれよ、中○!
  14. 14. まったく磯○はせっかちだなぁ~焦らなくても今教えてやるよ~
  15. 15. …た…頼むよ…。
  16. 16. HOW TO 手順は2つ  routesファイルにルーティング設定書く  ControllerをWebSocketオブジェクトを返すよ うに書く  以上
  17. 17. HOW TO routes  普通のRESTエンドポイントと一緒  例えばクエリパラメータを取りたければ、こう  GET /ws controllers.Application.ws(id:Int)
  18. 18. HOW TO controller  通常のcontroller  public static Result ws(int id){…}  これを  public static WebSocket<A> ws(int id){…}  こう書き換える。
  19. 19. HOW TO controller  型パラメータ<A>はクライアントとやり取りす るメッセージの型を指定する。  文字列とかJsonとか指定できる。  戻りの型のWebSocketクラスは抽象クラス  クライアントからの入力を表すIn<A>  クライアントへの出力を表すOut<A>  を引数にとるonReady(in, out)を実装する
  20. 20. HOW TO controller  こんな感じ
  21. 21. HOW TO controller  クライアントからメッセージを受け取った時の処理は、 In<A>にコールバックとして設定する  クライアントにメッセージを送信したい時は、Out<A> のwriteメソッドで送信できる  特定のクライアントだけにメッセージを送信したいみ たいな場合は?  なんかしら(IDとか)をキーにして、Out<A>をMapみたいなも のに入れておきましょう  json使って、アプリレベルでのプロトコルを設計する必要があ ります。
  22. 22. HOW TO こんな感じ
  23. 23. 見づらいぞ、中
  24. 24. Gistに貼っておいてやったぞ、磯○!https://gist.github.com/kamekoopa/5268800
  25. 25. (反応がない。ただの屍のようだ。)
  26. 26. The thing you should see is only here Conclusion
  27. 27. Conclusion Node.jsだけじゃないんだよ  Playframeworkという選択肢  パフォーマンスもNodeに劣らない Java/Scalaで書ける安心感  静的型付き言語  Javaの既存資産が有効活用できるよ Playなら  開発初動がほんと早い  今回のサンプルはLT資料書きながらでも プロジェクト作成から始めて数分で出来た。  Websocket専用の流儀とかがあんまりない  controllerでWebSocket<A>抽象クラス実装して返すだけ
  28. 28. おわり

×