More Related Content
Similar to HTML5-pronama-study (20)
More from Naoya Inada (8)
HTML5-pronama-study
- 2. お前、誰よ
●
稲田 尚也 (@naoina)
●
若さ溢れる0x19歳
●
京都のPythonista
●
kyoto.py
- 4. WebSocketとは
●
WEBブラウザで使えるソケット
●
まだ規格は草案(ドラフト)段階
●
各ブラウザベンダーが先行実装
- 5. WebSocketとは
●
WEBブラウザで使えるソケット
●
まだ規格は草案(ドラフト)段階
●
各ブラウザベンダーが先行実装
※Iなんとかさんはお察しください
- 6. WebSocketとは
●
WEBブラウザで使えるソケット
●
まだ規格は草案(ドラフト)段階
●
各ブラウザベンダーが先行実装
※Iなんとかさんはお察しください
●
HTML5ではない
- 10. プロトコル
引用: http://ja.wikipedia.org/wiki/WebSocket
基本的に各プロトコルバージョン間での互換性はない
- 11. プロトコル
●
TCPで通信
●
80番ポートまたは443番ポート
●
文字列およびバイナリの送受信
●
通常のソケットとしては使えない
- 13. WebSocketサーバー
●
Node.js + Socket.IO
●
pywebsocket
●
gevent-websocket
●
Meinheld
●
Tornado
- 14. WebSocketサーバー
●
Node.js + Socket.IO
●
pywebsocket
●
gevent-websocket
●
meinheld
●
tornado
- 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 }
10
11 ws.onclose = function() {
12 console.log("closed");
13 }
14
15 ws.onerror = function() {
16 console.log("error");
17 }
18
19 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 ...
10
11 def on_message(self, msg):
12 ...
13 self.write_message(msg)
14
15 def on_close(self):
16 ...
17
18 app = Application([
19 (r"/chat", Handler),
20 ])
21
22 if __name__ == '__main__':
23 app.listen(8080)
24 tornado.ioloop.IOLoop.instance().start()
- 30. まとめ
●
WebSocketは難しくない
●
Pythonを使えば簡単にWebSocket
サーバーが書ける
●
よってPythonを使うと幸せになる