SlideShare ist ein Scribd-Unternehmen logo
1 von 20
Downloaden Sie, um offline zu lesen
Socket.IO 1.0の話
2013/08/21
Node学園10時限目
自己紹介
Twitter: @nkzawa
GitHub: nkzawa
● 個人的にSocket.IO 1.0 ベースでアプリを開発
中。
● Socket.IO関連のOSSをいくつか公開していま
す。
Socket.IO 1.0の現在
Socket.IO 1.0の現在
● githubのmasterブランチで開発されている。
● 最近5ヶ月更新がない …
● 代わりに派生プロジェクトのengine.ioが更新さ
れている。
● 後方互換性はないが、0.9に近いAPIを持つ。
● 機能的にはすでに全て揃っている(ように見え
る)。
Socket.IO 1.0の現在
機能は揃っているが、不具合がいくつかあって、
githubのソースをインストールしても動かない。
→ 修正したバージョンを公開してます。
https://github.com/nkzawa/socket.io
$ npm install nkzawa/socket.io
Engine.IO
Engine.IO
● websocketやpollingなど、transportの違いを吸
収するライブラリ。
● socket.io 1.0のベース。単体でも使える。
● stable, production ready
● 接続安定性: engine.io > socket.io 0.9
0.9と1.0の主な違い
プロトコル
0.9のプロトコル
● 効率的なtransport順に接続を試みる。
(websocket → xhr-polling)
● コロン区切りのパケット。
5:::{"name":"foo","args":[1]}
1.0のプロトコル
● 接続を確立するまでが早くて確実な順に接続を
試みる。接続後、効率的な方法にアップグレー
ドする。(xhr-polling → websocket)
● パケットは、engine.ioのデータ部分に、socket.
ioのメッセージがのるかたち。
42["foo",1]
※2以降がengins.ioデータで、socket.ioのメッセージ。
1.0のプロトコル
問題点:後方互換性がないので、0.9向けのクライ
アントライブラリは全て使えない。
→ 1.0のJavaクライアント公開してます。
https://github.com/nkzawa/socket.io-client.java
https://github.com/nkzawa/engine.io-client.java
Middleware
Middleware
Authorizationの仕組みが廃止され、代わりに
Express/Connectライクなmiddlewareレイヤが追
加。
io.use(function(socket, next) {
// handshake時のServerRequestオブジェクト
console.log(socket.request);
// 引数にerrを渡すと接続を切れる
next();
});
Middleware
問題点:標準でmiddlewareが付属していない。
→ middlewareコレクションを公開中してます。
cookieParser, sessionとか。
https://github.com/nkzawa/socket.io-bundle
Adapter
Adapter
● Storeが廃止されて、同等の機能を持つ
Adapterが追加。
● インターフェイスがシンプルになって、責任範囲
が広くなった。
● broadcastを行うと、Adapterに処理が委譲され
る。独自のAdapterを実装して、broadcastの動
きをカスタマイズするとかできそう。
Adapter
問題点:0.9にあったRedisStoreに代わるものが付
属していない。
→ サードパーティのライブラリがあります。
https://github.com/meltzerj/socket.io-redis
https://github.com/mcollina/socket.io-adapters
※まともに動くか検証してません。
まとめ
まとめ
● 正式公開は近い!(願望)
● engine.ioのおかげで、接続の安定性が向上し
ます。
● middleware便利。
● 1.0の採用もそろそろ検討しましょう。

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (8)

Nodejsによるwebsocket入門
Nodejsによるwebsocket入門Nodejsによるwebsocket入門
Nodejsによるwebsocket入門
 
うしちゃん WebRTC Chat on SkyWayの開発コードw
うしちゃん WebRTC Chat on SkyWayの開発コードwうしちゃん WebRTC Chat on SkyWayの開発コードw
うしちゃん WebRTC Chat on SkyWayの開発コードw
 
WebRTCについて調べてみた [LT駆動開発 02]
WebRTCについて調べてみた [LT駆動開発 02]WebRTCについて調べてみた [LT駆動開発 02]
WebRTCについて調べてみた [LT駆動開発 02]
 
2013 WebRTC node
2013 WebRTC node2013 WebRTC node
2013 WebRTC node
 
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
負荷対策しておもったことまとめ~JMeterでSocket.IOもいけるでよ~
 
BeagleBone BlackでBeacon受信
BeagleBone BlackでBeacon受信BeagleBone BlackでBeacon受信
BeagleBone BlackでBeacon受信
 
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
 
WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介WebSocket / WebRTCの技術紹介
WebSocket / WebRTCの技術紹介
 

Ähnlich wie Socket.io 1.0の話

Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善
Honma Masashi
 
Play2の裏側
Play2の裏側Play2の裏側
Play2の裏側
masahitojp
 

Ähnlich wie Socket.io 1.0の話 (17)

レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞくレイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
レイヤー分けをしたアーキテクチャで作るiOSアプリ&バックエンドのサンプル実装をのぞく
 
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
超初心者でも大丈夫!AngularJSでフォームページをちょっとリッチに改造してみよう
 
Core Graphics on watchOS 2
Core Graphics on watchOS 2Core Graphics on watchOS 2
Core Graphics on watchOS 2
 
HTML5-pronama-study
HTML5-pronama-studyHTML5-pronama-study
HTML5-pronama-study
 
Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善Firefox OS の Wi-Fi 機能改善
Firefox OS の Wi-Fi 機能改善
 
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分についてiOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
iOSアプリ開発で意識すると役立ちそうな「つなぎ目」の部分について
 
Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9Xcode 7 の新しいところ #cm_ios9
Xcode 7 の新しいところ #cm_ios9
 
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
 
Play2の裏側
Play2の裏側Play2の裏側
Play2の裏側
 
Introduction to Yocto Project - Let's make customized embedded linux
Introduction to Yocto Project - Let's make customized embedded linuxIntroduction to Yocto Project - Let's make customized embedded linux
Introduction to Yocto Project - Let's make customized embedded linux
 
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介 【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
【BS3】Visual Studio 2022 と .NET 6 での Windows アプリ開発技術の紹介
 
iBeacon (Lightning Talk @ NDS in Niigata #1)
iBeacon (Lightning Talk @ NDS in Niigata #1)iBeacon (Lightning Talk @ NDS in Niigata #1)
iBeacon (Lightning Talk @ NDS in Niigata #1)
 
Scala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまでScala 初めての人が Heroku で Web アプリを公開するまで
Scala 初めての人が Heroku で Web アプリを公開するまで
 
WindowsにおけるUIスレッドの基礎
WindowsにおけるUIスレッドの基礎WindowsにおけるUIスレッドの基礎
WindowsにおけるUIスレッドの基礎
 
CodeIgniter 最新情報 2011 (増補版)
CodeIgniter 最新情報 2011 (増補版)CodeIgniter 最新情報 2011 (増補版)
CodeIgniter 最新情報 2011 (増補版)
 
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒントiOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
iOS側のUIの特徴と見比べるAndroid側でのUI実装のヒント
 
プロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafeプロトコル拡張の話? #WWDC21cafe
プロトコル拡張の話? #WWDC21cafe
 

Kürzlich hochgeladen

Kürzlich hochgeladen (12)

Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 

Socket.io 1.0の話