SlideShare a Scribd company logo
HTML5




          HTML5, WebApplications 2




                      とくなが たかひさ ( id : totty_jp )

<html>5
i.                .
        名前   :   徳永 貴久
        所属   :   EC-One
        業務   :   SE or PG (Java, Ruby, Flex, etc...)
        性別   :   ♂
        年齢   :   そのくらいです。

        blog : http://d.hatena.ne.jp/totty_jp/
        twitter : totty_jp




<html>5
ii.
      今日は、Web Sockets API
          サーバーPush型
          リアルタイム型
          普通のWeb
          現行のHttpプロトコルを利用した全てに適用できる!?

      メリットの高そうな利用用途
          西鉄バス位置情報サービス
          モバイル端末向けのデータサービス




<html>5
iii. Indexed Database API
      実装されたブラウザが・・・
          K/V型のデータストア(+ index)
          検証できる環境が出来るまでご容赦




<html>5
iv. Web Sockets API
      クライアントとサーバとの双方向通信を実現
          永続的な接続ができる(コネクション張りっぱなし)
           リソース的には、都度、コネクションを張ってヘッダを付与したやり
           とりよりECOな感じ
           リソース的に負荷は、コネクションを接続する際に多く必要とする為


          双方向にデータの送信できるということは・・
           サーバー <=> クライアント
           クライアント <=> クライアント
           サーバー <=> サーバー
           クライアント <=> サーバー <=> クライアント

          HTTPの拡張プロトコル
           ただし、永続なので、クローズ処理は、明示的に行う必要がある



<html>5
iv. Web Sockets API
      Ajax
          サーバーとの通信をポーリングし、そのポーリング期間でメッ
          セージが配信される
          ポーリング期間中、都度サーバーと接続する為リソースの消費が
          多い

      Commet
          プッシュ方式だが、永続的な接続には、煩雑な作業が必要になる
          2つのHTTP接続を使って、双方向通信が実現できる

      Web Sockets
          1つのソケットで、双方向通信が実現できる
          サーバー×クライアント間で、UTF-8なら変換が不要


<html>5
iv. Web Sockets API
      対応ブラウザ
          Google Chrome
          Firefox
          Safari
          ?

      対応サーバー(ソフトウェア)
          Kaazing
              MinaというフレームワークでJava実装サーバー
          Jetty
              Java純正サーバー
          apache(pywebsocket)
              Python向け組み込み型モジュール

      利用ポート(Httpと同じ)
          80番
              default port
          443番
              secure port


<html>5
iv. Web Sockets API
      Web Sockets Interface
          Constractor
              var ws = new WebSocket(url, protocol)
                      ws://domain/hello    ⇒   平文通信 80ポート
                      wss://domain/hello   ⇒   暗号化通信 413ポート
          EventHandler
              ws.onopen
                      通信開始イベント
              ws.onclose
                      通信終了イベント
              ws.onmessage
                      メッセージの受信イベント
          Method
              ws.send(“Hello WebSocket”)
                      メッセージの送信
              ws.close()
                      通信終了
          Attribute
              URL
                      WebSocketに渡されたURLの解決した結果
              readyState
                      CONNECTING = 0 ・・・ コネクションは確立されていない
                      OPEN       = 1 ・・・ コネクションは確立されている(通信可能)
                      CLOSED    = 2 ・・・ コネクションは閉じている
              bufferedAmount
                      まだ、送信されていないデータ(メッセージ)のバイト数

<html>5
iv. Web Sockets API
      Demo




<html>5
iv. Web Sockets API
      Sample
          websocketSample.html
          <script>
             var ws = new WebSocket("ws://localhost:81");
             ws.onopen = openConnection;
             ws.onclose = closeConnection;
             ws.onmessage = recieveMsg;
             window.onunload = closeConnection;

             function openConnection() { //null }
             function closeConnection() { ws.close(); }
             function recieveMsg(evt) {
                 log("message receive -> ", evt.data);
             }
             function sendMsg() {
               var msg = document.getElementById("msg").value;
               ws.send(msg);
             }
          </script>


<html>5
iv. Web Sockets API
      Sample
          websocketSample.html(続き)
          <body>
             <section>
               <h2>Web Socket Demo</h2>
               <div>
                 <table>
                   <tr>
                     <th>Mesaage</th>
                     <th colspan="2">&nbsp;</th>
                   </tr>
                   <tr>
                     <td><input type="text" id="msg"></td>
                     <td><button onClick="sendMsg()">    </button></td>
                   </tr>
                 </table>
                 <table id="logTable"></table>
               </div>
             </section>
           </body>

<html>5
v. それで。。
      それで。。
      前回は、ネットワーク世界のonline/offlineに不可欠となる
      技術として、HTML5のオフラインキャッシュ機能の紹介
      でした。

      今回は、ネットワーク負荷が低くリアルタイム性のある
      Web Sockets 機能の紹介でした。

      この二つの機能と、他のHTML5によってWebの世界では、
      また一つ革新的な時代を迎えるだろうと考えています。




<html>5

More Related Content

What's hot (20)

PDF
これから利用拡大?WebSocket
AdvancedTechNight
 
PPTX
再入門、サーバープッシュ技術
Shin Sekaryo
 
PPTX
Varnish
Ayako Hatori
 
PPTX
Tiny server
komem3
 
PPT
Study2study3 nslope
Noriyasu Sakaue
 
PDF
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
Seiichiro Ishida
 
PDF
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
 
PPT
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
 
PPTX
Clack meetup #1 lt
Atsushi Odagiri
 
PDF
Janogia20120921 yoshinotakeshi
Keisuke Ishibashi
 
PDF
Web packaging IETF 側
yuki-f
 
PDF
私たちは何を Web っぽいと感じているのか
Kenta Yamamoto
 
PDF
How To Drink Wsgi
Atsushi Odagiri
 
PDF
Nodejsによるwebsocket入門
Daiki Hayakawa
 
PDF
Firefox OS and Web server
Tomoaki Konno
 
PDF
Open vSwitchソースコードの全体像
Sho Shimizu
 
PPTX
WebSocketでリアルタイム通信 (第13回学生LT資料)
stmkza
 
PDF
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
 
PPT
Webアプリケーションの無停止稼働
Kazuho Oku
 
KEY
Nko
to_muu_mas
 
これから利用拡大?WebSocket
AdvancedTechNight
 
再入門、サーバープッシュ技術
Shin Sekaryo
 
Varnish
Ayako Hatori
 
Tiny server
komem3
 
Study2study3 nslope
Noriyasu Sakaue
 
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
Seiichiro Ishida
 
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
博文 斉藤
 
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
 
Clack meetup #1 lt
Atsushi Odagiri
 
Janogia20120921 yoshinotakeshi
Keisuke Ishibashi
 
Web packaging IETF 側
yuki-f
 
私たちは何を Web っぽいと感じているのか
Kenta Yamamoto
 
How To Drink Wsgi
Atsushi Odagiri
 
Nodejsによるwebsocket入門
Daiki Hayakawa
 
Firefox OS and Web server
Tomoaki Konno
 
Open vSwitchソースコードの全体像
Sho Shimizu
 
WebSocketでリアルタイム通信 (第13回学生LT資料)
stmkza
 
2014/11/08 第3回 一撃サーバー構築シェルスクリプト勉強会(懇親会もあるよ!) 発表資料
Yasutaka Hamada
 
Webアプリケーションの無停止稼働
Kazuho Oku
 

Similar to Html5, Web Applications 2 (20)

PPTX
JavaプログラマのためのWebSocket概要
Shumpei Shiraishi
 
PPTX
Clrh 110716 wcfwf
Tomoyuki Obi
 
PDF
WebSocket + Node.jsでつくるチャットアプリ
Kohei Kadowaki
 
PDF
Gaeja20121130
Shinichiro Takezaki
 
PDF
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
Shigeo Ueda
 
PDF
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
崇之 清水
 
PDF
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
Takakiyo Tanaka
 
PDF
SocketStream入門
Kohei Kadowaki
 
PDF
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
 
PDF
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
 
PPTX
勉強会資料①
真亮 坂口
 
PPTX
JavaOne2014報告会資料
Mitsuyasu Tsuhako
 
PDF
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
Yosuke HASEGAWA
 
PPTX
20120425
小野 修司
 
PDF
Seasarプロジェクト徹底攻略
takezoe
 
PPTX
Web socket and gRPC
TIS Inc
 
PDF
HTTP入門
Sho A
 
PDF
Let's begin WebRTC
yoshikawa_t
 
PPTX
Chromebook 「だけ」で WebRTCを動かそう
mganeko
 
PDF
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
You_Kinjoh
 
JavaプログラマのためのWebSocket概要
Shumpei Shiraishi
 
Clrh 110716 wcfwf
Tomoyuki Obi
 
WebSocket + Node.jsでつくるチャットアプリ
Kohei Kadowaki
 
Gaeja20121130
Shinichiro Takezaki
 
SlackのIncomingWebhooksとOutgoingWebhooksを使って電子工作と連携させてみよう
Shigeo Ueda
 
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
崇之 清水
 
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
Takakiyo Tanaka
 
SocketStream入門
Kohei Kadowaki
 
node+socket.io+enchant.jsでチャットゲーを作る
Kiyoshi SATOH
 
AWS + Windows(C#)で構築する.NET最先端技術によるハイパフォーマンスウェブアプリケーション開発実践
Yoshifumi Kawai
 
勉強会資料①
真亮 坂口
 
JavaOne2014報告会資料
Mitsuyasu Tsuhako
 
HTML5のセキュリティ もうちょい詳しく- HTML5セキュリティその3 : JavaScript API
Yosuke HASEGAWA
 
20120425
小野 修司
 
Seasarプロジェクト徹底攻略
takezoe
 
Web socket and gRPC
TIS Inc
 
HTTP入門
Sho A
 
Let's begin WebRTC
yoshikawa_t
 
Chromebook 「だけ」で WebRTCを動かそう
mganeko
 
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
You_Kinjoh
 
Ad

Recently uploaded (8)

PDF
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
PDF
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PDF
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
 
PDF
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
PDF
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
 
PDF
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
PDF
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
PDF
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
人気ブロックチェーン基盤「Hyperledger Fabric」最新版を動かしてみた!
LFDT Tokyo Meetup
 
プライバシ保護のためのインターネットアーキテクチャの進化 (2025-07-11)
Jun Kurihara
 
PostgreSQL18新機能紹介(db tech showcase 2025 発表資料)
NTT DATA Technology & Innovation
 
Hyperledger Fabric公式サンプル fabric-samples徹底解説
LFDT Tokyo Meetup
 
20250711_日本IBM ミドルウエア・ユーザー研究会(JIMUC)総会_中村会長資料.pdf
ChikakoInami1
 
[Hardening Designers Confernece 2025]ランサムウェアでの見えざるログ・見えるログ
kataware
 
Hyperledger Fabric最新v3.x系での機能強化、変更点にキャッチアップ!
LFDT Tokyo Meetup
 
20250710_Devinで切り拓くDB革命_〜価値創出に集中せよ〜.pdf
Masaki Yamakawa
 
Ad

Html5, Web Applications 2

  • 1. HTML5 HTML5, WebApplications 2 とくなが たかひさ ( id : totty_jp ) <html>5
  • 2. i. . 名前 : 徳永 貴久 所属 : EC-One 業務 : SE or PG (Java, Ruby, Flex, etc...) 性別 : ♂ 年齢 : そのくらいです。 blog : http://d.hatena.ne.jp/totty_jp/ twitter : totty_jp <html>5
  • 3. ii. 今日は、Web Sockets API サーバーPush型 リアルタイム型 普通のWeb 現行のHttpプロトコルを利用した全てに適用できる!? メリットの高そうな利用用途 西鉄バス位置情報サービス モバイル端末向けのデータサービス <html>5
  • 4. iii. Indexed Database API 実装されたブラウザが・・・ K/V型のデータストア(+ index) 検証できる環境が出来るまでご容赦 <html>5
  • 5. iv. Web Sockets API クライアントとサーバとの双方向通信を実現 永続的な接続ができる(コネクション張りっぱなし) リソース的には、都度、コネクションを張ってヘッダを付与したやり とりよりECOな感じ リソース的に負荷は、コネクションを接続する際に多く必要とする為 双方向にデータの送信できるということは・・ サーバー <=> クライアント クライアント <=> クライアント サーバー <=> サーバー クライアント <=> サーバー <=> クライアント HTTPの拡張プロトコル ただし、永続なので、クローズ処理は、明示的に行う必要がある <html>5
  • 6. iv. Web Sockets API Ajax サーバーとの通信をポーリングし、そのポーリング期間でメッ セージが配信される ポーリング期間中、都度サーバーと接続する為リソースの消費が 多い Commet プッシュ方式だが、永続的な接続には、煩雑な作業が必要になる 2つのHTTP接続を使って、双方向通信が実現できる Web Sockets 1つのソケットで、双方向通信が実現できる サーバー×クライアント間で、UTF-8なら変換が不要 <html>5
  • 7. iv. Web Sockets API 対応ブラウザ Google Chrome Firefox Safari ? 対応サーバー(ソフトウェア) Kaazing MinaというフレームワークでJava実装サーバー Jetty Java純正サーバー apache(pywebsocket) Python向け組み込み型モジュール 利用ポート(Httpと同じ) 80番 default port 443番 secure port <html>5
  • 8. iv. Web Sockets API Web Sockets Interface Constractor var ws = new WebSocket(url, protocol) ws://domain/hello ⇒ 平文通信 80ポート wss://domain/hello ⇒ 暗号化通信 413ポート EventHandler ws.onopen 通信開始イベント ws.onclose 通信終了イベント ws.onmessage メッセージの受信イベント Method ws.send(“Hello WebSocket”) メッセージの送信 ws.close() 通信終了 Attribute URL WebSocketに渡されたURLの解決した結果 readyState CONNECTING = 0 ・・・ コネクションは確立されていない OPEN = 1 ・・・ コネクションは確立されている(通信可能) CLOSED = 2 ・・・ コネクションは閉じている bufferedAmount まだ、送信されていないデータ(メッセージ)のバイト数 <html>5
  • 9. iv. Web Sockets API Demo <html>5
  • 10. iv. Web Sockets API Sample websocketSample.html <script> var ws = new WebSocket("ws://localhost:81"); ws.onopen = openConnection; ws.onclose = closeConnection; ws.onmessage = recieveMsg; window.onunload = closeConnection; function openConnection() { //null } function closeConnection() { ws.close(); } function recieveMsg(evt) { log("message receive -> ", evt.data); } function sendMsg() { var msg = document.getElementById("msg").value; ws.send(msg); } </script> <html>5
  • 11. iv. Web Sockets API Sample websocketSample.html(続き) <body> <section> <h2>Web Socket Demo</h2> <div> <table> <tr> <th>Mesaage</th> <th colspan="2">&nbsp;</th> </tr> <tr> <td><input type="text" id="msg"></td> <td><button onClick="sendMsg()"> </button></td> </tr> </table> <table id="logTable"></table> </div> </section> </body> <html>5
  • 12. v. それで。。 それで。。 前回は、ネットワーク世界のonline/offlineに不可欠となる 技術として、HTML5のオフラインキャッシュ機能の紹介 でした。 今回は、ネットワーク負荷が低くリアルタイム性のある Web Sockets 機能の紹介でした。 この二つの機能と、他のHTML5によってWebの世界では、 また一つ革新的な時代を迎えるだろうと考えています。 <html>5