Suche senden
Hochladen
Berry'sWaffle
•
0 gefällt mir
•
540 views
Takumi Noda
Folgen
AWS+Node.js+Sails.js+Redis によるスケーラブルWebSocket
Weniger lesen
Mehr lesen
Internet
Melden
Teilen
Melden
Teilen
1 von 12
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
AWSが誰でも使える理由
AWSが誰でも使える理由
Nobuhiko Futagami
Yeoman RIAビルドツール超入門
Yeoman RIAビルドツール超入門
Masakazu Muraoka
Virtual boxからVM Importする
Virtual boxからVM Importする
Shinji Saito
Looking glass + videoplayer
Looking glass + videoplayer
優介 黒河
Web班
Web班
XMLProJ2014
Dioxy : How To Presentation [HTML/CSSワークショップ #1 / パンくずリストを作ろう]
Dioxy : How To Presentation [HTML/CSSワークショップ #1 / パンくずリストを作ろう]
dioxy
JS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲーム
sairoutine
CSS Nite LP26 CodeKitで始める次世代Web制作
CSS Nite LP26 CodeKitで始める次世代Web制作
Maboroshi.inc
Empfohlen
AWSが誰でも使える理由
AWSが誰でも使える理由
Nobuhiko Futagami
Yeoman RIAビルドツール超入門
Yeoman RIAビルドツール超入門
Masakazu Muraoka
Virtual boxからVM Importする
Virtual boxからVM Importする
Shinji Saito
Looking glass + videoplayer
Looking glass + videoplayer
優介 黒河
Web班
Web班
XMLProJ2014
Dioxy : How To Presentation [HTML/CSSワークショップ #1 / パンくずリストを作ろう]
Dioxy : How To Presentation [HTML/CSSワークショップ #1 / パンくずリストを作ろう]
dioxy
JS と Canvas で作るシューティングゲーム
JS と Canvas で作るシューティングゲーム
sairoutine
CSS Nite LP26 CodeKitで始める次世代Web制作
CSS Nite LP26 CodeKitで始める次世代Web制作
Maboroshi.inc
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話
sairoutine
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
leverages_event
20150523
20150523
Toshihiro Suzuki
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
崇之 清水
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
taiju higashi
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
Masashi Murakami
AWS Builders KANSAI - re:Inventの遊び方
AWS Builders KANSAI - re:Inventの遊び方
Daiki Mori
Sass実践編+Compass入門
Sass実践編+Compass入門
Yoshiya OKI
AsssetStoreに頼ってVRコースターを作ってみる
AsssetStoreに頼ってVRコースターを作ってみる
Yo Takezawa
Vue.jsからFirebaseに 入門しようとしたら 使い方間違ってた件
Vue.jsからFirebaseに 入門しようとしたら 使い方間違ってた件
Seito Taka
ピタゴラスイッチでAWS自動化(JAWS-UG-LT @shimy_net )
ピタゴラスイッチでAWS自動化(JAWS-UG-LT @shimy_net )
崇之 清水
古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!
Naoto Ishizawa
Ec2でwebサイトを運用するメリット
Ec2でwebサイトを運用するメリット
Katsuhiro Masaki
Innovation eggcloudnative
Innovation eggcloudnative
Takuro Sasaki
20090717 Ruby Kaigi Lightning Talk
20090717 Ruby Kaigi Lightning Talk
axsh co., LTD.
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
Seiko Kuchida
JAWS-UG和歌山第0回キックオフミーティング LT
JAWS-UG和歌山第0回キックオフミーティング LT
三七男 山本
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Yoshihiro Ura
【LTセッション】推論をエッジで?いえ、PaaSです。 paasで推論を運用するとこんなに楽チン。_DLLAB推論ナイト
【LTセッション】推論をエッジで?いえ、PaaSです。 paasで推論を運用するとこんなに楽チン。_DLLAB推論ナイト
Deep Learning Lab(ディープラーニング・ラボ)
Middlemanによる静的サイト作成術
Middlemanによる静的サイト作成術
豊明 尾古
VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発
Ryosuke Izumi
10回目nodejs
10回目nodejs
Takuya Shishido
Weitere ähnliche Inhalte
Was ist angesagt?
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話
sairoutine
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
leverages_event
20150523
20150523
Toshihiro Suzuki
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
崇之 清水
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
taiju higashi
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
Masashi Murakami
AWS Builders KANSAI - re:Inventの遊び方
AWS Builders KANSAI - re:Inventの遊び方
Daiki Mori
Sass実践編+Compass入門
Sass実践編+Compass入門
Yoshiya OKI
AsssetStoreに頼ってVRコースターを作ってみる
AsssetStoreに頼ってVRコースターを作ってみる
Yo Takezawa
Vue.jsからFirebaseに 入門しようとしたら 使い方間違ってた件
Vue.jsからFirebaseに 入門しようとしたら 使い方間違ってた件
Seito Taka
ピタゴラスイッチでAWS自動化(JAWS-UG-LT @shimy_net )
ピタゴラスイッチでAWS自動化(JAWS-UG-LT @shimy_net )
崇之 清水
古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!
Naoto Ishizawa
Ec2でwebサイトを運用するメリット
Ec2でwebサイトを運用するメリット
Katsuhiro Masaki
Innovation eggcloudnative
Innovation eggcloudnative
Takuro Sasaki
20090717 Ruby Kaigi Lightning Talk
20090717 Ruby Kaigi Lightning Talk
axsh co., LTD.
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
Seiko Kuchida
JAWS-UG和歌山第0回キックオフミーティング LT
JAWS-UG和歌山第0回キックオフミーティング LT
三七男 山本
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
Yoshihiro Ura
【LTセッション】推論をエッジで?いえ、PaaSです。 paasで推論を運用するとこんなに楽チン。_DLLAB推論ナイト
【LTセッション】推論をエッジで?いえ、PaaSです。 paasで推論を運用するとこんなに楽チン。_DLLAB推論ナイト
Deep Learning Lab(ディープラーニング・ラボ)
Middlemanによる静的サイト作成術
Middlemanによる静的サイト作成術
豊明 尾古
Was ist angesagt?
(20)
JSでファミコンエミュレータを作った時の話
JSでファミコンエミュレータを作った時の話
GruntでJavaScript 前作業の自動化!
GruntでJavaScript 前作業の自動化!
20150523
20150523
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
AWSはとんでもないものを盗んでいきました(JawsDays2013@shimy_net)
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
やすい・はやい・うまいMTのホスティング環境を求めて - jaws-ug-3to-2013-sprint
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
SaCSS vol.63 動的なサイトの開発でgulpとBrowserSyncを使ってみる
AWS Builders KANSAI - re:Inventの遊び方
AWS Builders KANSAI - re:Inventの遊び方
Sass実践編+Compass入門
Sass実践編+Compass入門
AsssetStoreに頼ってVRコースターを作ってみる
AsssetStoreに頼ってVRコースターを作ってみる
Vue.jsからFirebaseに 入門しようとしたら 使い方間違ってた件
Vue.jsからFirebaseに 入門しようとしたら 使い方間違ってた件
ピタゴラスイッチでAWS自動化(JAWS-UG-LT @shimy_net )
ピタゴラスイッチでAWS自動化(JAWS-UG-LT @shimy_net )
古い?ダサい?まだまだイケルChef!
古い?ダサい?まだまだイケルChef!
Ec2でwebサイトを運用するメリット
Ec2でwebサイトを運用するメリット
Innovation eggcloudnative
Innovation eggcloudnative
20090717 Ruby Kaigi Lightning Talk
20090717 Ruby Kaigi Lightning Talk
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
a-blog cms 勉強会 in 札幌 x SaCSS 2016 投稿画面を改良してみよう
JAWS-UG和歌山第0回キックオフミーティング LT
JAWS-UG和歌山第0回キックオフミーティング LT
webアプリケーションフレームワークの話
webアプリケーションフレームワークの話
【LTセッション】推論をエッジで?いえ、PaaSです。 paasで推論を運用するとこんなに楽チン。_DLLAB推論ナイト
【LTセッション】推論をエッジで?いえ、PaaSです。 paasで推論を運用するとこんなに楽チン。_DLLAB推論ナイト
Middlemanによる静的サイト作成術
Middlemanによる静的サイト作成術
Ähnlich wie Berry'sWaffle
VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発
Ryosuke Izumi
10回目nodejs
10回目nodejs
Takuya Shishido
Node.js で Web アプリ開発
Node.js で Web アプリ開発
Tatsumi Naganuma
2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」
2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」
Satoshi Noda
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
Kahori Takeda
200813 fgdc mandai
200813 fgdc mandai
beyond Co., Ltd.
コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015
Ryo Nakamaru
Canvas勉強会
Canvas勉強会
Tsutomu Kawamura
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
Kei Nakazawa
React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話
Kanako Kobayashi
Ähnlich wie Berry'sWaffle
(10)
VueとAWSAppSyncで始めるチャットアプリ開発
VueとAWSAppSyncで始めるチャットアプリ開発
10回目nodejs
10回目nodejs
Node.js で Web アプリ開発
Node.js で Web アプリ開発
2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」
2013/03/09 VisualStudio勉強会 LT 「統合開発環境の支援ツール」
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
AWS 初心者抜けきれない私がAWS Samurai と AWS Community Builder の特権フル活用したらどんなものが作れるか挑戦する
200813 fgdc mandai
200813 fgdc mandai
コンソールゲームを世界展開してみた - JAWS DAYS 2015
コンソールゲームを世界展開してみた - JAWS DAYS 2015
Canvas勉強会
Canvas勉強会
12.09.08 明星和楽2012 KLabハンズオンセッション
12.09.08 明星和楽2012 KLabハンズオンセッション
React Nativeの話のその前に… サービスの作り方の話
React Nativeの話のその前に… サービスの作り方の話
Berry'sWaffle
1.
AWS+Node.js+Sails.js+Redis によるスケーラブルWebSocket http://goo.gl/dB9tN8
2.
動機 http://goo.gl/dB9tN8 俺「メールPJでメールだけじゃなく、WebSocketも使ってリアルタイムに通知するとかどうっすかね」
I川さん「いいんじゃないですか」 俺「でもやるとなったらスケーラブルなのかどうかが気になりますよね」 I川「そうですね」 -5分後- 俺「あ、RedisのPub/Subっていうのを使うとスケールアウト出来るらしいです」 I川「そうなんですね。あ、じゃあそれをネタにLT用に何かアプリ作ってみたらどうですか」 俺「そうですね。じゃあチャットアプリ作ります」 I川さん「で、作ったらユニットで使えばいいじゃないですか」 俺「そ、そうですね…」
3.
Berry's Waffle(http://goo.gl/dB9tN8) Berryのおしゃべり(=waffle)アプリケーション
・WebSocketでリアルタイム送受信 ・Node.jsをスケールアウト ・女子力高め ・デスクトップ通知(webkit系のみ)
4.
http://goo.gl/dB9tN8 WebSocketって何 要するにクライアント、サーバ間でコネクションを何度も張ることなく
リアルタイム双方向通信出来るよってこと。 詳しくはwikiをどうぞ。http://ja.wikipedia.org/wiki/WebSocket
5.
Node.jsを使う理由 http://goo.gl/dB9tN8 WebSocket周辺の技術を便利に使う為のSocket.IOというライブラリ
を使いたいから。 Sails.jsは? Socket.IOも使えるMVCフレームワーク。 Sails.jsの現行最新のv0.10.4を使った例がweb上ではあまり無かったので やってみたかった。
6.
Redisのpub/subを使う? http://goo.gl/dB9tN8 pub=publish(発行),
sub=subscribe(購読)。 例えば、Process1がRedisに「chatチャンネルをSubscribe します」と伝えます。 次に、Process2がRedisに対して「chatチャンネルにメッセ ージをPublishします」と伝えます。 すると、chatチャンネルをSubscribeしている全てのプロセス にメッセージが伝えられます。
7.
サーバ構成 ELB EC2
EC2 ElastiCache AWS http://goo.gl/dB9tN8 ELB Port Configuration: 80 (TCP) forwarding to 1337 (TCP) EC2 Node.js(Sails.js)が1337ポートをリッスン ElastiCache Redisが6379ポートをリッスン
8.
subscribe(購読)登録実装 door.ejs(クライアントサイド) RoomController.js(サーバサイド)
http://goo.gl/dB9tN8
9.
publish(発行)実装 door.ejs(クライアントサイド) http://goo.gl/dB9tN8
ChatController.js(サーバサイド) door.ejs(クライアントサイド 待ち受け)
10.
デスクトップ通知(おまけ) door.ejs http://goo.gl/dB9tN8
11.
苦労した点(AWSの) ELBのPort Configuration
最初は 80 (HTTP) forwarding to 1337 (HTTP) としていたが、コネクションが切れまくった。 WebSocketは、HTTP→WebSocketに移行するので 80 (TCP) forwarding to 1337 (TCP)でないと駄目 ElastiCacheのSecurityGroup 最初はローカルからつなげて稼働確認したかったので、 InboundにTCP(6379)でxx.xxx.xx.xxx/32(自宅IP)を指定したが 自宅からもEC2からも繋がらなかった。 →ElastiCacheはEC2からの接続しか許可してなかった。自宅IPはずしたらいけた。
12.
おわり ・github https://github.com/raccoon-berry/waffle
・berry’s waffle http://goo.gl/dB9tN8
Jetzt herunterladen