More Related Content
Similar to AndroidでWebSocket
Similar to AndroidでWebSocket (20)
More from Kohei Kadowaki (15)
AndroidでWebSocket
- 2. ⾃自⼰己紹介
! 名前:kadoppe
! Twitter twitter.com/kadoppe
! Blog www.kadoppe.net
! 職業:プログラマ(iOS, Web, etc.)
! HTML5-‐‑‒West.jp コアメンバー
! PIRKA プログラマー
! about.me/kadoppe
2
- 15. 従来の双⽅方向通信技術
! 代表的なもの
! XMLHttpRequestによるPolling
! Comet(Long Polling)
ざっくりまとめると
HTTPを使ってリアルタイムWeb
を実現する技術
15
- 23. WebSocketの標準化
! The WebSocket Protocol
! 通信プロトコルを定義
! IETFにより策定中(2011/7/11 Last Call)
! The WebSocket API
! ブラウザから利利⽤用するJavaScript APIを定義
! W3Cにより策定中
23
- 24. ブラウザ対応状況 (PC)
プロトコル IE Firefox Chrome Safari Opera
hixie-‐‑‒75 4 5.0.0
hixie-‐‑‒76,
4(無効) 6 5.0.1 11(無効)
hybi-‐‑‒00
6
hybi-‐‑‒07
(Prefix付き)
HTML5
hybi-‐‑‒09
Labs
hybi-‐‑‒10 7
14
(Last Call) (Prefix付き)
※プロトコルの各リビジョン間の互換性はない。
24
- 29. Opera mini
! Opera mini 11.0以降降のバージョン
! hybi-‐‑‒00に対応
! デフォルトでは無効
! セキュリティへの配慮
! opera:config→User prefs→Enable
WebSockets にチェックを⼊入れて有
効化
29
- 30. 使い⽅方 (JavaScript)
! WebSocketインスタンスの⽣生成
var ws = new WebSocket(“ws://example.com/chat/”);!
! イベントハンドラの登録
ws.onopen = function() {};!
ws.onclose = function() {};!
ws.onmessage = function() {};!
ws.onerror = function() {};!
! データ送信・切切断
ws.send(message);!
ws.close();!
30
- 33. 使い⽅方 (JavaScript)
! WebSocketインスタンスの⽣生成
var ws = new MozWebSocket(“ws://example.com/chat/”);!
! イベントハンドラの登録
ws.onopen = function() {};!
ws.onclose = function() {};!
ws.onmessage = function() {};!
ws.onerror = function() {};!
! データ送信・切切断
ws.send(message);!
ws.close();!
33
- 36. 使い⽅方 (Java)
! WebSocketインスタンスの⽣生成
URI url = new URI("ws://127.0.0.1:8080/test");
WebSocket websocket = new WebSocketConnection(url);
!
! イベントハンドラの登録
websocket.setEventHandler(new WebSocketEventHandler() {
public void onOpen() {}
public void onMessage(WebSocketMessage message) {}
public void onClose() {}
});!
! 接続・データ送信
websocket.connect();
websocket.send(message);
!
36
- 38. まとめ
! WebSocket
! リアルタイムWebを実現するためのプロトコル
! 従来の⽅方式よりも効率率率的な通信が⾏行行える
! AndroidでWebSocket
! デフォルトのブラウザからは現状利利⽤用不不可
! サードパーティのブラウザから利利⽤用
! ネイティブアプリから利利⽤用
! 意外とカンタン!
! Letʼ’s try!!
38