Submit Search
Upload
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
•
23 likes
•
16,511 views
Yuhei Miyazato
Follow
LocoPartnersさんのiOSもくもく会#6にてお話したスライドです。 http://connpass.com/event/13198/
Read less
Read more
Technology
Report
Share
Report
Share
1 of 21
Download now
Download to read offline
Recommended
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
ksk_ha
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
Recommended
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Akihiro Suda
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
いつやるの?Git入門 v1.1.0
いつやるの?Git入門 v1.1.0
Masakazu Matsushita
Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
WebSocketのキホン
WebSocketのキホン
You_Kinjoh
Redisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
コンテナを止めるな! PacemakerによるコンテナHAクラスタリングとKubernetesとの違いとは
ksk_ha
組織にテストを書く文化を根付かせる戦略と戦術
組織にテストを書く文化を根付かせる戦略と戦術
Takuto Wada
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
Kotlinアンチパターン
Kotlinアンチパターン
Recruit Lifestyle Co., Ltd.
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
Node-v0.12の新機能について
Node-v0.12の新機能について
shigeki_ohtsu
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
TDD のこころ
TDD のこころ
Takuto Wada
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
HTTP/2 入門
HTTP/2 入門
Yahoo!デベロッパーネットワーク
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
例外設計における大罪
例外設計における大罪
Takuto Wada
こわくない Git
こわくない Git
Kota Saito
日本語テストメソッドについて
日本語テストメソッドについて
kumake
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
MVC の Model を考える
MVC の Model を考える
tomo_masakura
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
「JPOHC」のロゴ制作の話
「JPOHC」のロゴ制作の話
典子 松本
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
Syo Ikeda
More Related Content
What's hot
DockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
Kotlinアンチパターン
Kotlinアンチパターン
Recruit Lifestyle Co., Ltd.
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Takuto Wada
Node-v0.12の新機能について
Node-v0.12の新機能について
shigeki_ohtsu
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
Shohei Koyama
TDD のこころ
TDD のこころ
Takuto Wada
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
HTTP/2 入門
HTTP/2 入門
Yahoo!デベロッパーネットワーク
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
例外設計における大罪
例外設計における大罪
Takuto Wada
こわくない Git
こわくない Git
Kota Saito
日本語テストメソッドについて
日本語テストメソッドについて
kumake
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
yohhoy
MVC の Model を考える
MVC の Model を考える
tomo_masakura
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Koichiro Matsuoka
What's hot
(20)
DockerコンテナでGitを使う
DockerコンテナでGitを使う
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Kotlinアンチパターン
Kotlinアンチパターン
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
Node-v0.12の新機能について
Node-v0.12の新機能について
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
DockerとPodmanの比較
DockerとPodmanの比較
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
インフラエンジニアの綺麗で優しい手順書の書き方
インフラエンジニアの綺麗で優しい手順書の書き方
TDD のこころ
TDD のこころ
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
HTTP/2 入門
HTTP/2 入門
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
例外設計における大罪
例外設計における大罪
こわくない Git
こわくない Git
日本語テストメソッドについて
日本語テストメソッドについて
20分くらいでわかった気分になれるC++20コルーチン
20分くらいでわかった気分になれるC++20コルーチン
MVC の Model を考える
MVC の Model を考える
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
Similar to webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
「JPOHC」のロゴ制作の話
「JPOHC」のロゴ制作の話
典子 松本
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
Syo Ikeda
ML system design_pattern
ML system design_pattern
yusuke shibui
IoTの原点
IoTの原点
Shinichi Takahashi
IoT縛りの勉強会! IoTLT vol.18
IoT縛りの勉強会! IoTLT vol.18
Seigo Tanaka
Atnd地域検索作ったよー
Atnd地域検索作ったよー
Ohishi Mikage
ロボ年表を作ってみた
ロボ年表を作ってみた
Nishida Kansuke
LINE Commumity Microsoft_ConversationalAI_20200409
LINE Commumity Microsoft_ConversationalAI_20200409
Ayako Omori
LT#6 Taskete
LT#6 Taskete
Shingo Inoue
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
Masaru Gushiken
Developers.IO 2017 | SORACOMの「便利さが伝わりにくいサービス」ランキング!!
Developers.IO 2017 | SORACOMの「便利さが伝わりにくいサービス」ランキング!!
SORACOM,INC
Bot Service 概要
Bot Service 概要
Yoshitaka Seo
Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2
Kanako Kobayashi
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Yasuyuki Ogawa
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
Teruo Adachi
Watanabe civictechforum
Watanabe civictechforum
siramatu-lab
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
akihiro uehara
Lombok ハンズオン
Lombok ハンズオン
Hiroto Yamakawa
第0回徳島スマホアプリ開発勉強会
第0回徳島スマホアプリ開発勉強会
健一 辰濱
DevOps Conference #1
DevOps Conference #1
Hiroshi Morotomi
Similar to webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
(20)
「JPOHC」のロゴ制作の話
「JPOHC」のロゴ制作の話
SwiftでAndroidアプリ書けるってよ
SwiftでAndroidアプリ書けるってよ
ML system design_pattern
ML system design_pattern
IoTの原点
IoTの原点
IoT縛りの勉強会! IoTLT vol.18
IoT縛りの勉強会! IoTLT vol.18
Atnd地域検索作ったよー
Atnd地域検索作ったよー
ロボ年表を作ってみた
ロボ年表を作ってみた
LINE Commumity Microsoft_ConversationalAI_20200409
LINE Commumity Microsoft_ConversationalAI_20200409
LT#6 Taskete
LT#6 Taskete
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
あなたも出来る!webエンジニアがSwiftでリリースするためにやったこと
Developers.IO 2017 | SORACOMの「便利さが伝わりにくいサービス」ランキング!!
Developers.IO 2017 | SORACOMの「便利さが伝わりにくいサービス」ランキング!!
Bot Service 概要
Bot Service 概要
Swiftビギナーズ倶楽部 vol.2
Swiftビギナーズ倶楽部 vol.2
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
Slack Appsでやれる事を確認した。年内日本語化されるんで、急ぎで!
DevOpsが引き金となるインフラエンジニアの進撃
DevOpsが引き金となるインフラエンジニアの進撃
Watanabe civictechforum
Watanabe civictechforum
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
20100701 01 ツイッター浜名湖_プレゼン_i_phoneで動くロボットセミナー
Lombok ハンズオン
Lombok ハンズオン
第0回徳島スマホアプリ開発勉強会
第0回徳島スマホアプリ開発勉強会
DevOps Conference #1
DevOps Conference #1
Recently uploaded
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
Recently uploaded
(10)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介: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」の紹介
webSocket通信を知らないiOSエンジニアが知っておいて損はしない(経験談的な)軽い話
1.
webSocket通信を知らないiOS エンジニアが知っておいて損は しない(経験談的な)軽い話 mitolab 宮里 悠平 2015/03/26
@ Loco Partnersもくもく会 #6
2.
お話すること • webソケット通信って? • iOSではどんなライブラリがあってどれがいいの •
サンプル作ってみたよ • 作ってみて気づいた点(初めて触る人には有用かも)
3.
自己紹介 • @mito_log こんなアイコン→ •
フリーランスiOSプログラマ • from沖縄 9月から海外(予定) • mitolab.co (8月末ごろまで東京で活動予定!お仕事ください!)
4.
webソケット通信 なるほど、Slackのあのレスポンスの良さ はこういう通信方式を使っているから?
5.
あれ、もしかしてこれ使えば Slackぽいチャットアプリ作れ ちゃうんじゃない?
6.
いやまて、そもそも webソケット通信てなんなの?
7.
Webソケット通信 なるほど双方向通信ね、でもそれっ て今までも色々あったよな?
8.
これまでの双方向通信といえば… quote from http://www.slideshare.net/You_Kinjoh/websocket-10621887
9.
Webソケット通信の場合は… quote from http://www.slideshare.net/You_Kinjoh/websocket-10621887
10.
Webソケット通信のメリット • 一度つないでしまえば、最小限のパケットで済むた めサーバ/クライアント双方の負荷が低い • 一度つないでしまえば、サーバ/クライアントのど ちらからでもデータのやりとりを開始できる •
HTTP通信に近いため、既存の通信方式とMIXし易 い
11.
Webソケット通信のデメリット • コネクション切断/再接続ハンドリング(サーバ側の システムメンテとかクライアント側の端末がスリー プしたとか)が大変。 • プロトコルはリアルタイム性に優れていても例えば DBとかインフラも追従しないと性能発揮できない のでは?
12.
じゃあiOSではどうやって使う? ライブラリ名 特徴 Socket Rocket おそらく一番よくメンテされてるライブラリ。 一般的。でかい案件で使うならこれかなと。 Starscream swift製。できることは上とあまり変わらないのか なと。 Socket.IO-objc
socket.ioのラッパライブラリ。v0.9までの対応。 SIOSocket socket.ioのラッパライブラリ。webViewでjsを読 み込んで、jsをブリッジして利用。v1.0対応。
13.
今回やりたいこと • webソケット通信といえばチャット! • マルチroomのチャットアプリ (ググった限りだとまだそういうサンプルなかったので、作ったら優位性があるかと思い…)
14.
SIOSocket
15.
SIOSocket “SIOSocket is simple
interface for communicating with socket.io 1.0 from iOS.” via github • roomの概念を持っている(socket.io自体がそう) • socket.io v1.0に対応 • 使いやすそう(webviewでsocket.ioをラップしてるだけなので)
16.
Demo1 ec2node socket.io port 3000 SIOSocket SIOSocket Qiita:socket.io
× SIOSocketでマルチルーム対応 iOSチャットアプリを作ってみた Socket.ioを使ったSimpleなチャットシステム 注) webSocketはforegroundでのみ有効
17.
ec2node socket.io port 3000 SIOSocket SIOSocket Qiita:socket.io-php-emitterを使ってsocket.ioの外(簡易API)からemitしてみる on
memory KVS apache phpsocket.io-emitter socket.io-redis + phpredis socket.io-php-emitter port 80 Demo2 Socket.io + RESTなAPIで構成したチャットシステム 注) socket.ioのプロセスの外からsocket.io プロセスにアクセスする場合、 adapter(ここではredis)を用いれば可能 Adapter
18.
感銘を受けた点 • websocketをつなぐと当該socketに割り振られたidの roomに自動的にjoinする • コネクションが切れると自動的に全てのroomから退出す る •
roomの削除に関してclient/serverが意識する必要はない • socket.io-emitterはnodeサーバ側のcallbackを呼ぶのでは なく、直接roomの各メンバのcallbackを呼ぶ
19.
次のステップ • node.js、socket.ioの理解を深める • 既存で動いてるシステムを見てみたい… •
socket.ioが公式swiftクライアント出したので試して みる
20.
ご清聴ありがとうございました
21.
参考リンク • フレクトのHeroku Lab
WebSocket通信のメリットを考える • SlideShare WebSocketのキホン • Socket.io公式swiftクライアント socket.io-client-swift • RFC6455 The WebSocket Protocol 日本語訳 • CyberAgent テックレポート Socket.io, Redisを使用し各ゲーム間でプッシュ 通史するシステム • 今回のサンプルソース https://github.com/mitolog/SIOChat
Download now