Your SlideShare is downloading. ×
0
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

HTML5-pronama-study

1,361

Published on

http://pronama.wordpress.com/2011/10/25/pronama-11-at-osaka/

http://pronama.wordpress.com/2011/10/25/pronama-11-at-osaka/

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,361
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. WebSocketで始めるPython 2011-11-19 HTML5 プログラミング生放送勉強会 第11回@大阪
  • 2. お前、誰よ● 稲田 尚也 (@naoina)● 若さ溢れる0x19歳● 京都のPythonista● kyoto.py
  • 3. 今日はWebSocketについて話します
  • 4. WebSocketとは● WEBブラウザで使えるソケット● まだ規格は草案(ドラフト)段階● 各ブラウザベンダーが先行実装
  • 5. WebSocketとは● WEBブラウザで使えるソケット● まだ規格は草案(ドラフト)段階● 各ブラウザベンダーが先行実装 ※Iなんとかさんはお察しください
  • 6. WebSocketとは● WEBブラウザで使えるソケット● まだ規格は草案(ドラフト)段階● 各ブラウザベンダーが先行実装 ※Iなんとかさんはお察しください● HTML5ではない
  • 7. WebSocket ≠ HTML5● 元はHTML5規格● 後にAPIはW3Cが、プロトコルは IETFが策定することに
  • 8. なにが嬉しいか● 双方向通信● リアルタイム性● 軽いプロトコル
  • 9. プロトコル
  • 10. プロトコル 引用: http://ja.wikipedia.org/wiki/WebSocket基本的に各プロトコルバージョン間での互換性はない
  • 11. プロトコル● TCPで通信● 80番ポートまたは443番ポート● 文字列およびバイナリの送受信● 通常のソケットとしては使えない
  • 12. WebSocketサーバー
  • 13. WebSocketサーバー● Node.js + Socket.IO● pywebsocket● gevent-websocket● Meinheld● Tornado
  • 14. WebSocketサーバー● Node.js + Socket.IO● pywebsocket● gevent-websocket● meinheld● tornado
  • 15. 簡単な例
  • 16. クライアント(ブラウザ)側 1 var ws = new WebSocket(ws://127.0.0.1/chat); 2 3 ws.onopen = function() { 4 console.log("open"); 5 } 6 7 ws.onmessage = function(msg) { 8 console.log("message received: " + msg.data); 9 }1011 ws.onclose = function() {12 console.log("closed");13 }1415 ws.onerror = function() {16 console.log("error");17 }1819 ws.send("ぐだぽよ");
  • 17. サーバー側 1 import tornado.ioloop 2 3 from tornado.web import Application 4 from tornado.websocket import WebSocketHandler 5 6 7 class Handler(WebSocketHandler): 8 def open(self): 9 ...1011 def on_message(self, msg):12 ...13 self.write_message(msg)1415 def on_close(self):16 ...1718 app = Application([19 (r"/chat", Handler),20 ])2122 if __name__ == __main__:23 app.listen(8080)24 tornado.ioloop.IOLoop.instance().start()
  • 18. ね、簡単でしょ?
  • 19. Node.jsとSocket.IO使った方が 簡単とか言わないでください
  • 20. One more thing
  • 21. WebSocketを使ったニコ生コメントビューア
  • 22. すでにあると面白くないので ググッて調べました
  • 23. ( ^ω^)………
  • 24. 無さそうだったので作ってみました
  • 25. ソースコードhttps://github.com/naoina/html5-pronama-demo
  • 26. 解説
  • 27. まとめ● WebSocketは難しくない● Pythonを使えば簡単にWebSocket サーバーが書ける● よってPythonを使うと幸せになる
  • 28. 質問?
  • 29. ありがとうございました

×