SlideShare una empresa de Scribd logo
1 de 10
Xhr2 streaming + Twitter w/ iPad 2010/5/27(thu) 「HTML5 : W3C Widget とその応用を考える会」 こまつ けんさく(@komasshu)
自己紹介 名前:こまつ けんさく 勤務先:NTTコミュニケーションズ Twitter : http://twitter.com/komasshu Blog : http://blog.livedoor.jp/kotesaki/
Demo Twitter streaming api + iPad
Overview Web Server (apache) xhr2  streaming Streaming api HTML5/CSS3 w/ iPad
xhr(Xml Http Request) streaming GET Web Server browser HTTP Data GET xhr streaming 〜Server-Sent Event〜 Web Server browser Data Data Data Upgrade Web Socket Server browser Data Data Data Web Socket Data Data Data
How to send? (flush) print cgi.header( "type"=>"text/event-stream”, 	"Access-Control-Allow-Origin"=>"*”, "Access-Control-Allow-Methods"=>"GET”) while1 ifcurr != cache['pos'] 	…… 	print"data: "+message+"¥n” STDOUT.flush end end
How to receive? (xhr2 streaming) ※ iPad/iPhone xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.onreadystatechange= function() { if(xhr.readyState > 2 && xhr.readyState < 5) { 	messages = xhr.responseText.substring(lastSize).split(“¥n"); lastSize= xhr.responseText.length; if (arr = messages[i].match(/^data:[ ]?({.+?})/)) { show(arr[1]); } } if(xhr.readyState == 4) { } } xhr.send(null);
How to receive?(Server-Sent-Event) ※ Webkit nightly / Chromium vareventSource = new EventSource("/cgi-bin/test.cgi"); eventSource.onmessage = function(e){ messages = e.data.split(“¥n"); varlen = messages.length; for (vari = 0; i < len; i++) { show(messages[i]); } }
How to draw?(CSS3 animation) @-webkit-keyframestraverse_l{ 0%{opacity: 0.2; 		-webkit-transform: translate(-600px,0px);} 50%      {opacity: 1.0; 		-webkit-transform: translate(150px,0px);} 100%    {opacity: 0.2; 		-webkit-transform: translate(900px,0px);}   } .traverse_l{ -webkit-animation-name: traverse_l; -webkit-animation-duration: 5s; } varobj = document.createElement('div'); obj.innerHTML= '<b>' + info.user + '</b>&nbsp;' + info.text; obj.setAttribute('class', 'traverse_l’); setTimeout(function(){ lists.removeChild(obj); }, 5000);
Thank you!!

Más contenido relacionado

Más de Kensaku Komatsu

02172016 web rtc_conf_komasshu
02172016 web rtc_conf_komasshu02172016 web rtc_conf_komasshu
02172016 web rtc_conf_komasshuKensaku Komatsu
 
SkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaSSkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaSKensaku Komatsu
 
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!Kensaku Komatsu
 
ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探る
ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探るビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探る
ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探るKensaku Komatsu
 
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.Kensaku Komatsu
 
14th apr2015 リックテレコ勉強会
14th apr2015 リックテレコ勉強会14th apr2015 リックテレコ勉強会
14th apr2015 リックテレコ勉強会Kensaku Komatsu
 
WebRTCが拓く 新たなWebビジネスの世界
WebRTCが拓く新たなWebビジネスの世界WebRTCが拓く新たなWebビジネスの世界
WebRTCが拓く 新たなWebビジネスの世界Kensaku Komatsu
 
Web of Thingsの現状とWebRTC活用の可能性
Web of Thingsの現状とWebRTC活用の可能性Web of Thingsの現状とWebRTC活用の可能性
Web of Thingsの現状とWebRTC活用の可能性Kensaku Komatsu
 
知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたち知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたちKensaku Komatsu
 
WebRTCにより可視化されるリアルタイムクラウド。求められるAPI
WebRTCにより可視化されるリアルタイムクラウド。求められるAPI WebRTCにより可視化されるリアルタイムクラウド。求められるAPI
WebRTCにより可視化されるリアルタイムクラウド。求められるAPI Kensaku Komatsu
 
エフサミ2014 web rtcの傾向と対策
エフサミ2014 web rtcの傾向と対策エフサミ2014 web rtcの傾向と対策
エフサミ2014 web rtcの傾向と対策Kensaku Komatsu
 
HTML5 Night 2014 Web x Network Technology ( WebRTC )
HTML5 Night 2014 Web x Network Technology ( WebRTC )HTML5 Night 2014 Web x Network Technology ( WebRTC )
HTML5 Night 2014 Web x Network Technology ( WebRTC )Kensaku Komatsu
 
iPhoneでなんちゃってWebRTC
iPhoneでなんちゃってWebRTCiPhoneでなんちゃってWebRTC
iPhoneでなんちゃってWebRTCKensaku Komatsu
 
うしちゃん WebRTC Chat on SkyWayの開発コードw
うしちゃん WebRTC Chat on SkyWayの開発コードwうしちゃん WebRTC Chat on SkyWayの開発コードw
うしちゃん WebRTC Chat on SkyWayの開発コードwKensaku Komatsu
 
第43回HTML5とか勉強会 最新webプロトコル傾向と対策
第43回HTML5とか勉強会 最新webプロトコル傾向と対策第43回HTML5とか勉強会 最新webプロトコル傾向と対策
第43回HTML5とか勉強会 最新webプロトコル傾向と対策Kensaku Komatsu
 
Webによるデバイスを用いたリアルタイムサービスの可能性(神戸ITフェスティバル版)
Webによるデバイスを用いたリアルタイムサービスの可能性(神戸ITフェスティバル版)Webによるデバイスを用いたリアルタイムサービスの可能性(神戸ITフェスティバル版)
Webによるデバイスを用いたリアルタイムサービスの可能性(神戸ITフェスティバル版)Kensaku Komatsu
 

Más de Kensaku Komatsu (20)

02172016 web rtc_conf_komasshu
02172016 web rtc_conf_komasshu02172016 web rtc_conf_komasshu
02172016 web rtc_conf_komasshu
 
SkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaSSkyWay国内唯一のCPaaS
SkyWay国内唯一のCPaaS
 
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ    uv4l-webrtc 軽くハックしてみたよ!
ラズパイでWebRTC ヾ(*´∀`*)ノキャッキャ uv4l-webrtc 軽くハックしてみたよ!
 
ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探る
ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探るビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探る
ビデオ通話・P2Pがコモディティ化する世界 WebRTCによるこれからを探る
 
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
最新Web 通信系API総まくり!WebRTC, Streams, Push api etc.
 
FirefoxでgetStats()
FirefoxでgetStats()FirefoxでgetStats()
FirefoxでgetStats()
 
14th apr2015 リックテレコ勉強会
14th apr2015 リックテレコ勉強会14th apr2015 リックテレコ勉強会
14th apr2015 リックテレコ勉強会
 
WebRTCが拓く 新たなWebビジネスの世界
WebRTCが拓く新たなWebビジネスの世界WebRTCが拓く新たなWebビジネスの世界
WebRTCが拓く 新たなWebビジネスの世界
 
Web of Thingsの現状とWebRTC活用の可能性
Web of Thingsの現状とWebRTC活用の可能性Web of Thingsの現状とWebRTC活用の可能性
Web of Thingsの現状とWebRTC活用の可能性
 
25th nov2014 52thhtml5j
25th nov2014 52thhtml5j25th nov2014 52thhtml5j
25th nov2014 52thhtml5j
 
知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたち知ってると得するかもしれないConstraintsたち
知ってると得するかもしれないConstraintsたち
 
WebRTCにより可視化されるリアルタイムクラウド。求められるAPI
WebRTCにより可視化されるリアルタイムクラウド。求められるAPI WebRTCにより可視化されるリアルタイムクラウド。求められるAPI
WebRTCにより可視化されるリアルタイムクラウド。求められるAPI
 
エフサミ2014 web rtcの傾向と対策
エフサミ2014 web rtcの傾向と対策エフサミ2014 web rtcの傾向と対策
エフサミ2014 web rtcの傾向と対策
 
HTML5 Night 2014 Web x Network Technology ( WebRTC )
HTML5 Night 2014 Web x Network Technology ( WebRTC )HTML5 Night 2014 Web x Network Technology ( WebRTC )
HTML5 Night 2014 Web x Network Technology ( WebRTC )
 
Web rtcの使い方
Web rtcの使い方Web rtcの使い方
Web rtcの使い方
 
iPhoneでなんちゃってWebRTC
iPhoneでなんちゃってWebRTCiPhoneでなんちゃってWebRTC
iPhoneでなんちゃってWebRTC
 
WebRTC の紹介
WebRTC の紹介WebRTC の紹介
WebRTC の紹介
 
うしちゃん WebRTC Chat on SkyWayの開発コードw
うしちゃん WebRTC Chat on SkyWayの開発コードwうしちゃん WebRTC Chat on SkyWayの開発コードw
うしちゃん WebRTC Chat on SkyWayの開発コードw
 
第43回HTML5とか勉強会 最新webプロトコル傾向と対策
第43回HTML5とか勉強会 最新webプロトコル傾向と対策第43回HTML5とか勉強会 最新webプロトコル傾向と対策
第43回HTML5とか勉強会 最新webプロトコル傾向と対策
 
Webによるデバイスを用いたリアルタイムサービスの可能性(神戸ITフェスティバル版)
Webによるデバイスを用いたリアルタイムサービスの可能性(神戸ITフェスティバル版)Webによるデバイスを用いたリアルタイムサービスの可能性(神戸ITフェスティバル版)
Webによるデバイスを用いたリアルタイムサービスの可能性(神戸ITフェスティバル版)
 

xhr2 steaming + twitter with iPad

  • 1. Xhr2 streaming + Twitter w/ iPad 2010/5/27(thu) 「HTML5 : W3C Widget とその応用を考える会」 こまつ けんさく(@komasshu)
  • 2. 自己紹介 名前:こまつ けんさく 勤務先:NTTコミュニケーションズ Twitter : http://twitter.com/komasshu Blog : http://blog.livedoor.jp/kotesaki/
  • 4. Overview Web Server (apache) xhr2 streaming Streaming api HTML5/CSS3 w/ iPad
  • 5. xhr(Xml Http Request) streaming GET Web Server browser HTTP Data GET xhr streaming 〜Server-Sent Event〜 Web Server browser Data Data Data Upgrade Web Socket Server browser Data Data Data Web Socket Data Data Data
  • 6. How to send? (flush) print cgi.header( "type"=>"text/event-stream”, "Access-Control-Allow-Origin"=>"*”, "Access-Control-Allow-Methods"=>"GET”) while1 ifcurr != cache['pos'] …… print"data: "+message+"¥n” STDOUT.flush end end
  • 7. How to receive? (xhr2 streaming) ※ iPad/iPhone xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.onreadystatechange= function() { if(xhr.readyState > 2 && xhr.readyState < 5) { messages = xhr.responseText.substring(lastSize).split(“¥n"); lastSize= xhr.responseText.length; if (arr = messages[i].match(/^data:[ ]?({.+?})/)) { show(arr[1]); } } if(xhr.readyState == 4) { } } xhr.send(null);
  • 8. How to receive?(Server-Sent-Event) ※ Webkit nightly / Chromium vareventSource = new EventSource("/cgi-bin/test.cgi"); eventSource.onmessage = function(e){ messages = e.data.split(“¥n"); varlen = messages.length; for (vari = 0; i < len; i++) { show(messages[i]); } }
  • 9. How to draw?(CSS3 animation) @-webkit-keyframestraverse_l{ 0%{opacity: 0.2; -webkit-transform: translate(-600px,0px);} 50% {opacity: 1.0; -webkit-transform: translate(150px,0px);} 100% {opacity: 0.2; -webkit-transform: translate(900px,0px);} } .traverse_l{ -webkit-animation-name: traverse_l; -webkit-animation-duration: 5s; } varobj = document.createElement('div'); obj.innerHTML= '<b>' + info.user + '</b>&nbsp;' + info.text; obj.setAttribute('class', 'traverse_l’); setTimeout(function(){ lists.removeChild(obj); }, 5000);