html5など社内勉強会 vol.8 - websocket

37
HTML5など 勉強会 Vol. 8 WebSocket 入門編 2012/2/9 @ 某社 System Management Headquaters George Harada

Upload: george-harada

Post on 18-Dec-2014

399 views

Category:

Education


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: HTML5など社内勉強会 Vol.8 - WebSocket

HTML5など 勉強会 Vol. 8 WebSocket 入門編

2012/2/9 @ 某社

System Management HeadquatersGeorge Harada

Page 2: HTML5など社内勉強会 Vol.8 - WebSocket

提 供

勉強会スタッフ(ボランティア)

システム統括本部

Page 3: HTML5など社内勉強会 Vol.8 - WebSocket

Agenda

1. DEMO 1

2. WebSocket ?

3. DEMO 2

Page 4: HTML5など社内勉強会 Vol.8 - WebSocket

Agenda

1. DEMO 1

2. WebSocket ?

3. DEMO 2

Page 5: HTML5など社内勉強会 Vol.8 - WebSocket

DEMO 1

Page 6: HTML5など社内勉強会 Vol.8 - WebSocket

DEMO 1から抜粋

Page 7: HTML5など社内勉強会 Vol.8 - WebSocket

DEMO 1から抜粋

Page 8: HTML5など社内勉強会 Vol.8 - WebSocket

DEMO 1から抜粋

Page 9: HTML5など社内勉強会 Vol.8 - WebSocket

DEMO 1から抜粋

Page 10: HTML5など社内勉強会 Vol.8 - WebSocket

DEMO 1から抜粋

Page 11: HTML5など社内勉強会 Vol.8 - WebSocket

DEMO 1から抜粋

Page 12: HTML5など社内勉強会 Vol.8 - WebSocket

DEMO 1から抜粋

Page 13: HTML5など社内勉強会 Vol.8 - WebSocket

DEMO 1から抜粋

Page 14: HTML5など社内勉強会 Vol.8 - WebSocket

Agenda

1. DEMO 1

2. WebSocket ?

3. DEMO 2

Page 15: HTML5など社内勉強会 Vol.8 - WebSocket

リアルタイム×

双方向通信実現するための通信技術

WebSocketとは

Page 16: HTML5など社内勉強会 Vol.8 - WebSocket

HTTPリクエスト

HTTPレスポンス

Webサーバクライアント(ブラウザ)

HTTP

・リクエストとレスポンスは必ずセット ・リクエストは常にクライアントから

Page 17: HTML5など社内勉強会 Vol.8 - WebSocket

WebSocketサーバクライアント(ブラウザ)

WebSocket

Upgrade

WebSocket

接続確立後はどちらからでも データの送信が可能

HTTPリクエスト

HTTPレスポンス

Page 18: HTML5など社内勉強会 Vol.8 - WebSocket

リアルタイム×

双方向通信実現するための通信技術

HTTPでは 不可能 な

HTTPより 効率的 な

WebSocketとは

Page 19: HTML5など社内勉強会 Vol.8 - WebSocket

そのまま使えるブラウザ

Chrome (4.0 以降) ※for Android Beta は ICS 以降

Safari (5.0 以降) ※iOS 4.2 以降

ベンダープレフィックスが必要なブラウザ

Firefox (6.0 以降) ※for Mobile は 7.0 以降

ユーザによる有効化設定が必要なブラウザ

Opera (11.0 以降)

対応予定Internet Explorer (10.0 以降)

対応ブラウザ (2012/02/08 現在)

Android標準ブラウザは非対応

Page 20: HTML5など社内勉強会 Vol.8 - WebSocket

// WebSocketサーバに接続 (暗号化通信は 'wss://' を利用)

var ws = new WebSocket('ws://www.w3.org:443/echo');

// メッセージを送信ws.send('送信データ');

// メッセージを受信(イベントハンドラ)

ws.onmessage = function(event) {

// 受信データを取り出す var message = event.data;

};

// 接続を切断(あまり使わないはず)

ws.close();

クライアント実装 (JavaScript)

onopenoncloseonerrorreadyState

他によく使うWebSocket プロパティ

Page 21: HTML5など社内勉強会 Vol.8 - WebSocket

// WebSocketサーバに接続var ws = new WebSocket('ws://www.w3.org:443/echo');

URL を要求: ws://www.w3.org:443/echoリクエストメソッド: GETステータスコード: 101 Web Socket Protocol Handshake

リクエストヘッダOrigin: http://www.w3.orgSec-WebSocket-Key1: fg182#9$ 11 9a y: 10+Connection: UpgradeHost: www.w3.org:443Sec-WebSocket-Key2: 35 ?6w4785 8 1 6Upgrade: WebSocket

レスポンスヘッダSec-WebSocket-Location: ws://www.w3.org:443/echoSec-WebSocket-Origin: http://www.w3.orgConnection: UpgradeUpgrade: WebSocket

Handshakeの流れ

(1) ブラウザから、接続確立のための HTTPリクエストをWSサーバに送信

(2) WSサーバは、リクエストの内容を 確認して接続許可のHTTPレスポンスを ブラウザに送信

(3) ブラウザは、接続をWebSocketに アップグレード

この一連の流れを Handshake と呼ぶ

Page 22: HTML5など社内勉強会 Vol.8 - WebSocket

・メジャーな開発言語には、便利なWebSocketライブラリが大体用意されており、 比較的容易に環境を構築できる

・最近の流行は Node.js + α の構成(サーバサイドJavaScript)

・ライブラリが対応するWebSocketの規格(バージョン)には注意が必要

・社内Proxy等による、通信ポートの制約には注意が必要

続きはまた、別の お は な し

WebSocketサーバ実装

Page 23: HTML5など社内勉強会 Vol.8 - WebSocket

と、いうわけでざっくりまとめ

Page 24: HTML5など社内勉強会 Vol.8 - WebSocket

リアルタイム×

双方向通信実現するための通信技術

HTTPでは 不可能 な

HTTPより 効率的 な

WebSocket (1)

Page 25: HTML5など社内勉強会 Vol.8 - WebSocket

// WebSocketサーバに接続 (暗号化通信は 'wss://' を利用)

var ws = new WebSocket('ws://www.w3.org:443/echo');

// メッセージを送信ws.send('送信データ');

// メッセージを受信(イベントハンドラ)

ws.onmessage = function(event) {

// 受信データを取り出す var message = event.data;

};

// 接続を切断(あまり使わないはず)

ws.close();

onopenoncloseonerrorreadyState

他によく使うWebSocket プロパティ

WebSocket (2)

使い方は

カンタン

Page 26: HTML5など社内勉強会 Vol.8 - WebSocket

そのまま使えるブラウザ

Chrome (4.0 以降) ※for Android Beta は ICS 以降

Safari (5.0 以降) ※iOS 4.2 以降

ベンダープレフィックスが必要なブラウザ

Firefox (6.0 以降) ※for Mobile は 7.0 以降

ユーザによる有効化設定が必要なブラウザ

Opera (11.0 以降)

対応予定Internet Explorer (10.0 以降)

WebSocket (3)

対応ブラウザに気をつけよう

Page 27: HTML5など社内勉強会 Vol.8 - WebSocket

Agenda

1. DEMO 1

2. WebSocket ?

3. DEMO 2

Page 28: HTML5など社内勉強会 Vol.8 - WebSocket

DEMO 2

Page 29: HTML5など社内勉強会 Vol.8 - WebSocket

sample-- 社内URL --

    ※Chrome または Safari でリンクを開いて下さい。    ※WebSocketサーバはメンテナンス等のため予告無く停止する場合があります。

動画に含まれる、その他のデモをご覧になりたい方はstudy_staff@ までご連絡ください

m(_ _)m

Page 30: HTML5など社内勉強会 Vol.8 - WebSocket

如何でしたか?

Page 31: HTML5など社内勉強会 Vol.8 - WebSocket

Future?No, Tomorrow!

Page 32: HTML5など社内勉強会 Vol.8 - WebSocket

新しいサービスをイロイロと考えてみてください!!

Page 33: HTML5など社内勉強会 Vol.8 - WebSocket

勉強会スタッフ絶賛募集中です

Page 34: HTML5など社内勉強会 Vol.8 - WebSocket

また次回お会いしましょう

Page 35: HTML5など社内勉強会 Vol.8 - WebSocket

tthhaannkkss !!

Page 36: HTML5など社内勉強会 Vol.8 - WebSocket

Special Thanks toAssistantOperationOperationOperationSupportSupportSupportSupport

順不同 敬称略

Page 37: HTML5など社内勉強会 Vol.8 - WebSocket

参考文献等HTML5- http://html5.jp/- http://www.amazon.co.jp/徹底解説HTML5マークアップガイドブック-羽田野太巳/dp/4798025291- http://www.amazon.co.jp/徹底解説-HTML5-APIガイドブック-ビジュアル系API編-羽田野/dp/4798028541

JavaScript- http://www.amazon.co.jp/パーフェクトJavaScript-PERFECT-4-井上-誠一郎/dp/477414813X