Enviar pesquisa
Carregar
WebSocket Protocol と Plack::Middleware::WebSocket
•
1 gostou
•
1,485 visualizações
Yu Nobuoka
Seguir
Kyoto.pm Tech Talks 02 での LT の発表資料です。 WebSocket プロトコルのことを軽く話しました。
Leia menos
Leia mais
Tecnologia
Denunciar
Compartilhar
Denunciar
Compartilhar
1 de 15
Baixar agora
Baixar para ler offline
Recomendados
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
websocket-survery
websocket-survery
hogemaru_
サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめ
Yasuhiro Mawarimichi
Html5, Web Applications 2
Html5, Web Applications 2
totty jp
HttpとTelnetをつなぐ何か
HttpとTelnetをつなぐ何か
ShigekiYamada
これから利用拡大?WebSocket
これから利用拡大?WebSocket
AdvancedTechNight
Web基礎
Web基礎
stx_kata
再入門、サーバープッシュ技術
再入門、サーバープッシュ技術
Shin Sekaryo
Recomendados
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
Yasuhiro Mawarimichi
websocket-survery
websocket-survery
hogemaru_
サーバPUSHざっくりまとめ
サーバPUSHざっくりまとめ
Yasuhiro Mawarimichi
Html5, Web Applications 2
Html5, Web Applications 2
totty jp
HttpとTelnetをつなぐ何か
HttpとTelnetをつなぐ何か
ShigekiYamada
これから利用拡大?WebSocket
これから利用拡大?WebSocket
AdvancedTechNight
Web基礎
Web基礎
stx_kata
再入門、サーバープッシュ技術
再入門、サーバープッシュ技術
Shin Sekaryo
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
Keisuke Ishibashi
20110622 haruyama webso]cket
20110622 haruyama webso]cket
Makoto Haruyama
Web packaging IETF 側
Web packaging IETF 側
yuki-f
TeamA
TeamA
Shunichi Hiraiwa
NanoStrand
NanoStrand
Masashi Umezawa
Using SockJS(Websocket) with Sencha Ext JS
Using SockJS(Websocket) with Sencha Ext JS
Kazuhiro Kotsutsumi
Nodejs
Nodejs
和樹 川端
暗認本読書会10
暗認本読書会10
MITSUNARI Shigeo
WebSocketでリアルタイム通信 (第13回学生LT資料)
WebSocketでリアルタイム通信 (第13回学生LT資料)
stmkza
パケット キャプチャで学ぶSMB (CIFS) の基本
パケット キャプチャで学ぶSMB (CIFS) の基本
彰 村地
Nodejsによるwebsocket入門
Nodejsによるwebsocket入門
Daiki Hayakawa
Tide - SmalltalkでSPA
Tide - SmalltalkでSPA
Masashi Umezawa
Varnish
Varnish
Ayako Hatori
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
Seiichiro Ishida
第1回concrete5初心者向け勉強会 環境構築
第1回concrete5初心者向け勉強会 環境構築
武彦 大山
Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働
Kazuho Oku
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
Enterprise Manager 3.0
Enterprise Manager 3.0
Yuji Fujita
私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか
Kenta Yamamoto
UnicastWS vol.1
UnicastWS vol.1
Unicast Inc.
WebSocketプロトコル
WebSocketプロトコル
Daniel Perez
Win32 APIをてなずけよう
Win32 APIをてなずけよう
Kouji Matsui
Mais conteúdo relacionado
Mais procurados
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
Keisuke Ishibashi
20110622 haruyama webso]cket
20110622 haruyama webso]cket
Makoto Haruyama
Web packaging IETF 側
Web packaging IETF 側
yuki-f
TeamA
TeamA
Shunichi Hiraiwa
NanoStrand
NanoStrand
Masashi Umezawa
Using SockJS(Websocket) with Sencha Ext JS
Using SockJS(Websocket) with Sencha Ext JS
Kazuhiro Kotsutsumi
Nodejs
Nodejs
和樹 川端
暗認本読書会10
暗認本読書会10
MITSUNARI Shigeo
WebSocketでリアルタイム通信 (第13回学生LT資料)
WebSocketでリアルタイム通信 (第13回学生LT資料)
stmkza
パケット キャプチャで学ぶSMB (CIFS) の基本
パケット キャプチャで学ぶSMB (CIFS) の基本
彰 村地
Nodejsによるwebsocket入門
Nodejsによるwebsocket入門
Daiki Hayakawa
Tide - SmalltalkでSPA
Tide - SmalltalkでSPA
Masashi Umezawa
Varnish
Varnish
Ayako Hatori
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
Seiichiro Ishida
第1回concrete5初心者向け勉強会 環境構築
第1回concrete5初心者向け勉強会 環境構築
武彦 大山
Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働
Kazuho Oku
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Koichi Uchimura
Enterprise Manager 3.0
Enterprise Manager 3.0
Yuji Fujita
私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか
Kenta Yamamoto
UnicastWS vol.1
UnicastWS vol.1
Unicast Inc.
Mais procurados
(20)
Janogia20120921 yoshinotakeshi
Janogia20120921 yoshinotakeshi
20110622 haruyama webso]cket
20110622 haruyama webso]cket
Web packaging IETF 側
Web packaging IETF 側
TeamA
TeamA
NanoStrand
NanoStrand
Using SockJS(Websocket) with Sencha Ext JS
Using SockJS(Websocket) with Sencha Ext JS
Nodejs
Nodejs
暗認本読書会10
暗認本読書会10
WebSocketでリアルタイム通信 (第13回学生LT資料)
WebSocketでリアルタイム通信 (第13回学生LT資料)
パケット キャプチャで学ぶSMB (CIFS) の基本
パケット キャプチャで学ぶSMB (CIFS) の基本
Nodejsによるwebsocket入門
Nodejsによるwebsocket入門
Tide - SmalltalkでSPA
Tide - SmalltalkでSPA
Varnish
Varnish
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
第1回Webサーバ勉強会 - 212-223 ブラウザマッチ処理
第1回concrete5初心者向け勉強会 環境構築
第1回concrete5初心者向け勉強会 環境構築
Webアプリケーションの無停止稼働
Webアプリケーションの無停止稼働
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
Enterprise Manager 3.0
Enterprise Manager 3.0
私たちは何を Web っぽいと感じているのか
私たちは何を Web っぽいと感じているのか
UnicastWS vol.1
UnicastWS vol.1
Destaque
WebSocketプロトコル
WebSocketプロトコル
Daniel Perez
Win32 APIをてなずけよう
Win32 APIをてなずけよう
Kouji Matsui
はじめての UWP アプリ開発
はじめての UWP アプリ開発
hiyohiyo
AWS re:Invent 2016: Building a Smarter Home with Alexa(ALX303)
AWS re:Invent 2016: Building a Smarter Home with Alexa(ALX303)
Amazon Web Services
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピング
Takuro Sasaki
AWS re:Invent 2016: Voice-enabling Your Home and Devices with Amazon Alexa an...
AWS re:Invent 2016: Voice-enabling Your Home and Devices with Amazon Alexa an...
Amazon Web Services
Destaque
(6)
WebSocketプロトコル
WebSocketプロトコル
Win32 APIをてなずけよう
Win32 APIをてなずけよう
はじめての UWP アプリ開発
はじめての UWP アプリ開発
AWS re:Invent 2016: Building a Smarter Home with Alexa(ALX303)
AWS re:Invent 2016: Building a Smarter Home with Alexa(ALX303)
AWS Lambdaで作るクローラー/スクレイピング
AWS Lambdaで作るクローラー/スクレイピング
AWS re:Invent 2016: Voice-enabling Your Home and Devices with Amazon Alexa an...
AWS re:Invent 2016: Voice-enabling Your Home and Devices with Amazon Alexa an...
Semelhante a WebSocket Protocol と Plack::Middleware::WebSocket
JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要
Shumpei Shiraishi
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
Takakiyo Tanaka
HTTP 2.0のヘッダ圧縮(HPACK)
HTTP 2.0のヘッダ圧縮(HPACK)
Jun Fujisawa
10th jan 2013_miyazaki
10th jan 2013_miyazaki
Kensaku Komatsu
第9回rest勉強会 ダウンロード・アップロード編
第9回rest勉強会 ダウンロード・アップロード編
ksimoji
ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様
ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様
hagino 3000
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】
Kikunaga Taishi
Gaeja20121130
Gaeja20121130
Shinichiro Takezaki
HTTP入門
HTTP入門
Sho A
H2O - making HTTP better
H2O - making HTTP better
Kazuho Oku
20120525 mt websocket
20120525 mt websocket
Ryosuke MATSUMOTO
WebRTC meetup Tokyo 1
WebRTC meetup Tokyo 1
mganeko
Lesson01
Lesson01
MRI
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
SEGADevTech
Speed Up Web 2012
Speed Up Web 2012
彰 村地
勉強会資料①
勉強会資料①
真亮 坂口
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
J-Stream Inc.
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
You_Kinjoh
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
Masaya Aoyama
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
Kazuhiro Hara
Semelhante a WebSocket Protocol と Plack::Middleware::WebSocket
(20)
JavaプログラマのためのWebSocket概要
JavaプログラマのためのWebSocket概要
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
HTTP 2.0のヘッダ圧縮(HPACK)
HTTP 2.0のヘッダ圧縮(HPACK)
10th jan 2013_miyazaki
10th jan 2013_miyazaki
第9回rest勉強会 ダウンロード・アップロード編
第9回rest勉強会 ダウンロード・アップロード編
ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様
ハイパフォーマンスブラウザネットワーキング 12章「HTTP 2.0」と現在の仕様
Webサーバの基礎知識【編集済み】
Webサーバの基礎知識【編集済み】
Gaeja20121130
Gaeja20121130
HTTP入門
HTTP入門
H2O - making HTTP better
H2O - making HTTP better
20120525 mt websocket
20120525 mt websocket
WebRTC meetup Tokyo 1
WebRTC meetup Tokyo 1
Lesson01
Lesson01
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
Speed Up Web 2012
Speed Up Web 2012
勉強会資料①
勉強会資料①
CDNの仕組み(JANOG36)
CDNの仕組み(JANOG36)
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
HTML5と WebSocket / WebRTC / Web Audio API / WebGL 技術解説
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
On-premise コンテナ基盤と Hardware LB を使った "type LoadBalancer"
PlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
Mais de Yu Nobuoka
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
Yu Nobuoka
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Yu Nobuoka
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
Yu Nobuoka
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Yu Nobuoka
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Yu Nobuoka
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Yu Nobuoka
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
Yu Nobuoka
GIF と LZW 圧縮と GifWriter.js
GIF と LZW 圧縮と GifWriter.js
Yu Nobuoka
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Yu Nobuoka
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
Yu Nobuoka
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Yu Nobuoka
Mais de Yu Nobuoka
(11)
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
5 年続く 「はてなブックマーク」 アプリを継続開発する技術
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
Android アプリを Jenkins でビルドして GitHub に “リリース” を作る
AndroidJUnitRunner で JUnit 4 形式のテストに移行
AndroidJUnitRunner で JUnit 4 形式のテストに移行
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
Android アプリ開発における Gradle ビルドシステム
Android アプリ開発における Gradle ビルドシステム
Java による Web アプリケーションのプロトタイプのために最近使っている構成
Java による Web アプリケーションのプロトタイプのために最近使っている構成
はてなにおける Android アプリのソフトウェアテスト
はてなにおける Android アプリのソフトウェアテスト
GIF と LZW 圧縮と GifWriter.js
GIF と LZW 圧縮と GifWriter.js
Windows ストアアプリのつくりかた (JS + HTML + CSS)
Windows ストアアプリのつくりかた (JS + HTML + CSS)
GUI アプリケーションにおける MVC
GUI アプリケーションにおける MVC
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
Último
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
Último
(9)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
WebSocket Protocol と Plack::Middleware::WebSocket
1.
WebSocket Protocol と Plack
Middleware 実装 id:nobuoka (@nobuoka)
2.
WebSocket って何?
3.
●
双方向の通信プロトコル ● HTTP と同じく Application layer に属する ● 下の layer は TCP ● Web アプリケーション用 ● HTTP を基にした既存の双方向 通信プロトコルの置き換えるため に設計された ● Ajax や Long polling を使わないように ● Comet などを置き換え
4.
●
プロトコル : RFC 6455 (IETF) ● 2011/12 ● クライアント側 API : 標準化作業中 (WHATWG, W3C)
5.
既存の技術と比べて何が良いの?
↓ オーバーヘッドが小さい!!
6.
Client
Server HTTP request HTTP response レスポンスを 遅らせる t Comet : HTTP 通信を何度も行う (HTTP ヘッダはでかい)
7.
Client
Handshake Server t WebSocket : 最初に接続を確立した 後はヘッダの小さいフレームをやりとり
8.
WebSocket プロトコル概要
9.
大きく分けて 2 つのフェーズ ●
Handshake ● 接続の確立 ● HTTP プロトコルの GET メソッド ● プロトコルを UPGRADE する ● Frame のやりとり ● Control frame ● Data frame ● 最後に close
10.
Opening Handshake GET /chat
HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade ... (略) ... HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade ... (略) ... ● HTTP request と response で接続確立 (上記例) ● HTTP 接続に使用した TCP ソケットをそのまま WebSocket のために使用
11.
Data framing ● 各種データは
frame 単位で送受信 ● Data Frames – Binary, Text ● Control Frames – Close, Ping, Pong ● ヘッダは最小 2 バイト (クライアント側からは 6 バイト) ● A single-frame unmasked text message – 81 05 48 65 6C 6C 6F (contains “Hello”)
12.
詳しくは RFC で!!
→ RFC 6455
13.
困ったところ
↓ どの web サーバーでも 使えるわけではない ブラウザはわりと対応してる Firefox, Chrome, Opera 12.50, IE 10, Safari 6
14.
WebSocket のサーバー側実装
Plack Middleware として書いた (不完全) Plack::Middleware::WebSocket https://github.com/nobuoka/Plack-Middleware-WebSocket Twiggy で動作することを確認
15.
デモ ページ上をクリックするとクリック位置が WebSocket
で やりとりされるというようなデモを行いました。 デモに使用したプログラムは URL にありますので 興味のある方はお試しください。 https://github.com/nobuoka/presentation/tree/20120819-Kyoto.pm-2/master
Baixar agora