WebSocketで始めるPython            2011-11-19 HTML5 プログラミング生放送勉強会 第11回@大阪
お前、誰よ●  稲田 尚也 (@naoina)●  若さ溢れる0x19歳●  京都のPythonista●  kyoto.py
今日はWebSocketについて話します
WebSocketとは●    WEBブラウザで使えるソケット●    まだ規格は草案(ドラフト)段階●    各ブラウザベンダーが先行実装
WebSocketとは●    WEBブラウザで使えるソケット●    まだ規格は草案(ドラフト)段階●    各ブラウザベンダーが先行実装    ※Iなんとかさんはお察しください
WebSocketとは●    WEBブラウザで使えるソケット●    まだ規格は草案(ドラフト)段階●    各ブラウザベンダーが先行実装     ※Iなんとかさんはお察しください●    HTML5ではない
WebSocket ≠ HTML5●    元はHTML5規格●    後にAPIはW3Cが、プロトコルは    IETFが策定することに
なにが嬉しいか●    双方向通信●    リアルタイム性●    軽いプロトコル
プロトコル
プロトコル           引用: http://ja.wikipedia.org/wiki/WebSocket基本的に各プロトコルバージョン間での互換性はない
プロトコル●    TCPで通信●    80番ポートまたは443番ポート●    文字列およびバイナリの送受信●    通常のソケットとしては使えない
WebSocketサーバー
WebSocketサーバー●    Node.js + Socket.IO●    pywebsocket●    gevent-websocket●    Meinheld●    Tornado
WebSocketサーバー●    Node.js + Socket.IO●    pywebsocket●    gevent-websocket●    meinheld●    tornado
簡単な例
クライアント(ブラウザ)側 1   var ws = new WebSocket(ws://127.0.0.1/chat); 2 3   ws.onopen = function() { 4       console.log("open");...
サーバー側 1   import tornado.ioloop 2 3   from tornado.web import Application 4   from tornado.websocket import WebSocketHandl...
ね、簡単でしょ?
Node.jsとSocket.IO使った方が 簡単とか言わないでください
One more thing
WebSocketを使ったニコ生コメントビューア
すでにあると面白くないので  ググッて調べました
( ^ω^)………
無さそうだったので作ってみました
ソースコードhttps://github.com/naoina/html5-pronama-demo
解説
まとめ●    WebSocketは難しくない●    Pythonを使えば簡単にWebSocket    サーバーが書ける●    よってPythonを使うと幸せになる
質問?
ありがとうございました
HTML5-pronama-study
HTML5-pronama-study
HTML5-pronama-study
Upcoming SlideShare
Loading in...5
×

HTML5-pronama-study

1,389

Published on

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,389
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

HTML5-pronama-study

  1. 1. WebSocketで始めるPython 2011-11-19 HTML5 プログラミング生放送勉強会 第11回@大阪
  2. 2. お前、誰よ● 稲田 尚也 (@naoina)● 若さ溢れる0x19歳● 京都のPythonista● kyoto.py
  3. 3. 今日はWebSocketについて話します
  4. 4. WebSocketとは● WEBブラウザで使えるソケット● まだ規格は草案(ドラフト)段階● 各ブラウザベンダーが先行実装
  5. 5. WebSocketとは● WEBブラウザで使えるソケット● まだ規格は草案(ドラフト)段階● 各ブラウザベンダーが先行実装 ※Iなんとかさんはお察しください
  6. 6. WebSocketとは● WEBブラウザで使えるソケット● まだ規格は草案(ドラフト)段階● 各ブラウザベンダーが先行実装 ※Iなんとかさんはお察しください● HTML5ではない
  7. 7. WebSocket ≠ HTML5● 元はHTML5規格● 後にAPIはW3Cが、プロトコルは IETFが策定することに
  8. 8. なにが嬉しいか● 双方向通信● リアルタイム性● 軽いプロトコル
  9. 9. プロトコル
  10. 10. プロトコル 引用: http://ja.wikipedia.org/wiki/WebSocket基本的に各プロトコルバージョン間での互換性はない
  11. 11. プロトコル● TCPで通信● 80番ポートまたは443番ポート● 文字列およびバイナリの送受信● 通常のソケットとしては使えない
  12. 12. WebSocketサーバー
  13. 13. WebSocketサーバー● Node.js + Socket.IO● pywebsocket● gevent-websocket● Meinheld● Tornado
  14. 14. WebSocketサーバー● Node.js + Socket.IO● pywebsocket● gevent-websocket● meinheld● tornado
  15. 15. 簡単な例
  16. 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. 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. 18. ね、簡単でしょ?
  19. 19. Node.jsとSocket.IO使った方が 簡単とか言わないでください
  20. 20. One more thing
  21. 21. WebSocketを使ったニコ生コメントビューア
  22. 22. すでにあると面白くないので ググッて調べました
  23. 23. ( ^ω^)………
  24. 24. 無さそうだったので作ってみました
  25. 25. ソースコードhttps://github.com/naoina/html5-pronama-demo
  26. 26. 解説
  27. 27. まとめ● WebSocketは難しくない● Pythonを使えば簡単にWebSocket サーバーが書ける● よってPythonを使うと幸せになる
  28. 28. 質問?
  29. 29. ありがとうございました
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×