play netty lt
TRANSCRIPT
Play! in Tokyo #2
NettyはPlay!でどう使われているのか的なお話
@tan_go238
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
About me
twitter :@tan_go238
会社 :株式会社プラグラム
言語 :Java, Flex, PHP
興味 :JVM, HTML5, WebGL, Obj-C
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
前回までのあらすじ
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
前回までのあらすじ
• ブロッキングとノンブロッキングIO• ブロッキングIOはクライアントと1vs1
• 処理待ちの間は他のことできない
• じゃあノンブロッキングで
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
前回までのあらすじ
• 「一番いいノンブロッキングを頼む」• 「Netty」(Grizzly, MINAよりも速い?)
• 「そんなNettyで大丈夫か?」
• 「大丈夫だ。問題無い。」
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
前回までのあらすじ
• Nettyの紹介• NIOフレームワーク
• 高パフォーマンス、高スケーラビリティ
• 非同期イベント駆動
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
前回までのあらすじ
• Nettyの説明
・ChannelPipelineはそのHandler をいくつか配置したもの
http://d.hatena.ne.jp/fatrow/20110208/netty
・UpStream(受)/DownStream(送)
・レイヤー毎にHandler
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
前回までのあらすじ
• ここまで• 質疑応答
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
前回までのあらすじ
• 質疑応答での悲劇NettyはPlay!でどのように使われているのですか?
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
前回までのあらすじ
• 質疑応答での悲劇
・・・・・・・・・・・・
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
やっと本題
• NettyはPlay!でどう使われているのか
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
Play! with Netty
• アプリケーションコンテナ代わり• 1.X系ではServlet, JSPに対応していない
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
Play! with Netty• play run (DEV mode)framework/pym/play/commands/base.py#run(app, args)
/path/to/java-javaagent /playHome/framework/play-version.jar -Dfile.encoding=utf-8 -Xdebug -Xrunjdwptransport=dt_socket,address=8000,server=y,suspend=n -Dplay.debug=yes -classpath appHome/conf /playHome/framework/lib以下のjar-Dapplication.path=/appHome -Dplay.id= play.server.Server
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
Play!内のNettyの設定
http://d.hatena.ne.jp/fatrow/20110208/netty
// allow-access-from domain=”*” to-ports=”*”pipeline.addLast(
"flashPolicy", new FlashPolicyHandler()); // Netty標準APIpipeline.addLast(
"decoder", new HttpRequestDecoder());// Long Polling (Streaming)pipeline.addLast(
"aggregator", new StreamChunkAggregator(max));// Netty標準APIpipeline.addLast(
"encoder", new HttpResponseEncoder());// Netty標準API(Streamingでデータを取得するためっぽい)pipeline.addLast(
"chunkedWriter", playHandler.chunkedWriteHandler);// それ以外のHTTPリクエスト、WebSocketpipeline.addLast(
"handler", playHandler);
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
Netty → Playbase.py#run
play.server.Server#main
play.server.PlayHandler#messageReceived
play.Invocation#init
play.Play#start
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
WebSocket(hybi10)対応について
• Play!は既に実装済みっぽい(けど動かない)play.server.hybi10 以下にクラスがある
昨日 (2011.10.07) 確認したが動かなかった 環境 Mac OS 10.6.8 Chrome 14.0.835.202
samples-and-tests/chatアプリで確認
2011年10月8日土曜日
Play! in Tokyo#2 Netty
COPYRIGHT 2011 PLUGRAM, INC.
WebSocket(hybi10)対応について
• Nettyが対応していない?
Pull Request有り
取り込まれてない
リリースいつ?
2011年10月8日土曜日
ありがとうございました!
2011年10月8日土曜日