Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
NY
Uploaded by
Natsuki Yamanaka
15,972 views
Nodeについて
Trifort内で行った社内勉強会です。 Node.js,Socket.IO,WebSocket,XmlHttpRequestなどについて基本的な説明をしています。
Technology
◦
Related topics:
Node.js Development
•
Read more
10
Save
Share
Embed
Embed presentation
Download
Downloaded 31 times
1
/ 23
2
/ 23
3
/ 23
4
/ 23
5
/ 23
6
/ 23
7
/ 23
8
/ 23
9
/ 23
10
/ 23
11
/ 23
12
/ 23
13
/ 23
14
/ 23
15
/ 23
16
/ 23
17
/ 23
18
/ 23
19
/ 23
20
/ 23
21
/ 23
22
/ 23
23
/ 23
More Related Content
PDF
Node.js Tutorial at Hiroshima
by
Yoshihiro Iwanaga
PDF
Node.js基礎の基礎 - Miyazaki.js vol.2
by
Nobuhiro Nakashima
PDF
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
PDF
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
PPT
Node.js で Web アプリ開発
by
Tatsumi Naganuma
PPTX
Node.js Hands-On
by
Akinari Tsugo
PDF
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
by
zuya
PDF
Node js 入門
by
Satoshi Takami
Node.js Tutorial at Hiroshima
by
Yoshihiro Iwanaga
Node.js基礎の基礎 - Miyazaki.js vol.2
by
Nobuhiro Nakashima
Node.jsでブラウザメッセンジャー
by
Yahoo!デベロッパーネットワーク
Node.js を選ぶとき 選ばないとき
by
Ryunosuke SATO
Node.js で Web アプリ開発
by
Tatsumi Naganuma
Node.js Hands-On
by
Akinari Tsugo
づや会 Vol4 Node.jsとphpのパフォーマンスを比較してみる
by
zuya
Node js 入門
by
Satoshi Takami
What's hot
PDF
Hello, Node.js
by
Shin Sekaryo
PDF
Node.js入門
by
俊夫 森
PPTX
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
by
Hiroyuki Kusu
PDF
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
by
Shunsuke Watanabe
PPTX
Node.js×mongo dbで3年間サービス運用してみた話
by
leverages_event
PDF
サーバサイドNodeの使い道
by
pospome
PDF
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
by
Kohei Asai
PPT
[大図解]ピグライフはこう動いている
by
Akihiro Kuwano
PPTX
Sails.jsのメリット・デメリット
by
Ito Kohta
PPT
20131012 nodejs
by
Amuro Nishizawa
PPTX
Hokuriku.net 2013 01-26 node.js
by
Tadahiro Ishisaka
PDF
WiredTigerストレージエンジン楽しい
by
Akihiro Kuwano
PDF
Nodejs
by
和樹 川端
PDF
Bp study39 nodejs
by
Yohei Sasaki
PPTX
FreeBSD VPSでLive Migration
by
spg_games
PPTX
120512 metro styleapp_javascript
by
Takayoshi Tanaka
PDF
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
by
furandon_pig
PPTX
後期講座01
by
Takenori Nakagawa
PPTX
たのしいNode.js
by
ishiki-takai
PPTX
ビルド職人の朝は早い
by
Masashi MATSUI
Hello, Node.js
by
Shin Sekaryo
Node.js入門
by
俊夫 森
【東京Node学園祭2016】Node.js × Babel で AWS Lambda アプリケーションを開発する
by
Hiroyuki Kusu
大阪Node学園 七時限目 「ゼロからはじめるnode.js」
by
Shunsuke Watanabe
Node.js×mongo dbで3年間サービス運用してみた話
by
leverages_event
サーバサイドNodeの使い道
by
pospome
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
by
Kohei Asai
[大図解]ピグライフはこう動いている
by
Akihiro Kuwano
Sails.jsのメリット・デメリット
by
Ito Kohta
20131012 nodejs
by
Amuro Nishizawa
Hokuriku.net 2013 01-26 node.js
by
Tadahiro Ishisaka
WiredTigerストレージエンジン楽しい
by
Akihiro Kuwano
Nodejs
by
和樹 川端
Bp study39 nodejs
by
Yohei Sasaki
FreeBSD VPSでLive Migration
by
spg_games
120512 metro styleapp_javascript
by
Takayoshi Tanaka
こんてなぐらし!〜FreeBSD VPSでライブマイグレーション〜
by
furandon_pig
後期講座01
by
Takenori Nakagawa
たのしいNode.js
by
ishiki-takai
ビルド職人の朝は早い
by
Masashi MATSUI
Viewers also liked
PPTX
Node.jsではじめるサーバ構築
by
AimingStudy
PPTX
Java script初心者のためのnode.jsで学ぶドローン制御プログラミング
by
健一 茂木
PPTX
JUNOS: OSPF and BGP
by
Zenith Networks
PDF
Node.jsでサーバプログラマ デビューしよう
by
Yuusuke Takeuchi
PDF
Node Foundation Membership Overview 20160907
by
NodejsFoundation
PPTX
Node.jsに縁のない職場でnode.jsを使い始める戦術
by
Isamu Suzuki
PDF
さくらのVPS で IPv4 over IPv6ルータの構築
by
Tomocha Potter
PDF
libpgenでパケット操作
by
slankdev
Node.jsではじめるサーバ構築
by
AimingStudy
Java script初心者のためのnode.jsで学ぶドローン制御プログラミング
by
健一 茂木
JUNOS: OSPF and BGP
by
Zenith Networks
Node.jsでサーバプログラマ デビューしよう
by
Yuusuke Takeuchi
Node Foundation Membership Overview 20160907
by
NodejsFoundation
Node.jsに縁のない職場でnode.jsを使い始める戦術
by
Isamu Suzuki
さくらのVPS で IPv4 over IPv6ルータの構築
by
Tomocha Potter
libpgenでパケット操作
by
slankdev
Similar to Nodeについて
PDF
Nodejs+socket ioを試す
by
uzundk
PDF
Introduction pp.js
by
Mizushima Kazuhiro
PPTX
Concurrent Programming in JavaScript
by
yjono Seino
PDF
Concurrent Programm in JavaScript
by
yjono Seino
PPTX
Non blocking and asynchronous
by
Norio Kobota
PDF
Nodejs Introduction
by
Jxck Jxck
PPTX
Js async
by
Shunji Makino
PDF
Nodeにしましょう
by
Yuzo Hebishima
PDF
エンジニア勉強会_Node.js
by
エンジニア勉強会 エスキュービズム
PPTX
モダン JavaScript における非同期処理 - Promise, async/await -
by
Kazunori Hashikuchi
PPTX
Too difficult concurrent processing
by
鈴木 セシル
PDF
Async Enhancement
by
kamiyam .
PPTX
その await 順序 C# では安全 Node.js では致命的 Chrome では?
by
Joni
PDF
Scalable Node.js with Redis Store
by
kamiyam .
PPTX
how to create a web server with a raspberry pi
by
nshmzlose
PDF
JavaScriptの非同期処理
by
Takumi Yokoyama
PDF
非同期プログラミング養成ギブスとしてのNode.js
by
Tajima Itsuro
PDF
東京Node学園#3 Domains & Isolates
by
koichik
PDF
JS非同期処理のいま
by
Masakazu Muraoka
PDF
第1回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
Nodejs+socket ioを試す
by
uzundk
Introduction pp.js
by
Mizushima Kazuhiro
Concurrent Programming in JavaScript
by
yjono Seino
Concurrent Programm in JavaScript
by
yjono Seino
Non blocking and asynchronous
by
Norio Kobota
Nodejs Introduction
by
Jxck Jxck
Js async
by
Shunji Makino
Nodeにしましょう
by
Yuzo Hebishima
エンジニア勉強会_Node.js
by
エンジニア勉強会 エスキュービズム
モダン JavaScript における非同期処理 - Promise, async/await -
by
Kazunori Hashikuchi
Too difficult concurrent processing
by
鈴木 セシル
Async Enhancement
by
kamiyam .
その await 順序 C# では安全 Node.js では致命的 Chrome では?
by
Joni
Scalable Node.js with Redis Store
by
kamiyam .
how to create a web server with a raspberry pi
by
nshmzlose
JavaScriptの非同期処理
by
Takumi Yokoyama
非同期プログラミング養成ギブスとしてのNode.js
by
Tajima Itsuro
東京Node学園#3 Domains & Isolates
by
koichik
JS非同期処理のいま
by
Masakazu Muraoka
第1回鹿児島node.jsの会資料_内村
by
Koichi Uchimura
More from Natsuki Yamanaka
PDF
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
by
Natsuki Yamanaka
PDF
2015 12 03_uiテストツールについて
by
Natsuki Yamanaka
PDF
アプリ申請の基礎 リジェクト周り
by
Natsuki Yamanaka
PDF
開発Tips集
by
Natsuki Yamanaka
PDF
3 d touchについて
by
Natsuki Yamanaka
PDF
多言語対応について 2016 07_25
by
Natsuki Yamanaka
PDF
2015 12 10_ipv6対応について
by
Natsuki Yamanaka
PDF
2015 11 05_ios9_新仕様まとめ_社内勉強会
by
Natsuki Yamanaka
PDF
社内勉強会にて 音声ファイルフォーマットについて
by
Natsuki Yamanaka
PDF
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
by
Natsuki Yamanaka
PDF
スマホ(Android・iPhone)でWebRTC
by
Natsuki Yamanaka
【2018/09/11】PAYでのReact Nativeにおける APIクライアント実装 について
by
Natsuki Yamanaka
2015 12 03_uiテストツールについて
by
Natsuki Yamanaka
アプリ申請の基礎 リジェクト周り
by
Natsuki Yamanaka
開発Tips集
by
Natsuki Yamanaka
3 d touchについて
by
Natsuki Yamanaka
多言語対応について 2016 07_25
by
Natsuki Yamanaka
2015 12 10_ipv6対応について
by
Natsuki Yamanaka
2015 11 05_ios9_新仕様まとめ_社内勉強会
by
Natsuki Yamanaka
社内勉強会にて 音声ファイルフォーマットについて
by
Natsuki Yamanaka
2015 03 26 社内勉強会_オープンソースソフトウェアライセンスについて
by
Natsuki Yamanaka
スマホ(Android・iPhone)でWebRTC
by
Natsuki Yamanaka
Nodeについて
1.
Node.js勉強会 山中夏樹
2.
概要 • Node.jsとはどういうものか • リアルタイム通信について •
Socket.IOについて
3.
Node.jsとは? • サーバーサイドJavascript。PHPやPerlなどと同 じようなことができる • RedisやNginxのようにイベント駆動の仕組み で動きシングルスレッド・シングルプロセス •
コネクション毎にプロセスが作られるapache 等における大量アクセスの問題点克服の為 作られた • ノンブロッキングIOによる非同期処理を実現 している
4.
シングルスレッド・シングルプロセスとは apacheの場合 コネクション毎にプロセスが貼られる サーバー クライアント httpdプロセス クライアント httpdプロセス クライアント httpdプロセス
5.
シングルスレッド・シングルプロセスとは Node.jsの場合 常に同じプロセス内 サーバー クライアント クライアント クライアント nodeプロセス
6.
ノンブロッキングIOとは コンピュータ内部のCPUと周辺装置のデー タ入出力(I/O)において、データの送受信 の完了を待たずに他の処理を開始する方 式。並列処理の一種。 JavaScriptの非同期処理の仕組みを利用 (コールバック地獄)
7.
ノンブロッキングIOとは 例えばこんな時にこう書く • お題 下記の処理を実装せよ 1. 2. 3. 4. 5. 「0」を出力する 1秒待つ 「1」を出力する 1秒待つ 「2」を出力する
8.
ノンブロッキングIOとは シェルスクリプトの場合(同期) #!/bin/sh echo 0 sleep 1 echo
1 sleep 1 echo 2 上から順番に処理される。 とても非常に素直な書き方。
9.
ノンブロッキングIOとは JavaScriptの場合(非同期) console.log(0); setTimeout(function(){ console.log(1); setTimeout(function(){ console.log(2); }, 1000);}, 1000); setTimeoutの引数になっているfunctionをコールバックといいます。 引数に関数を渡すので渡された関数の処理が終わった後に呼ばれる →下手すると5重6重のネストが生まれる →コールバック地獄
10.
■メリット • リアルタイム通信が割と簡単に実装できる • 軽くて速い! •
javascriptなのでUIの人もとっつきやすい ■デメリット • よくメモリリークが問題になる • シングルプロセス・シングルスレッドなのでマ ルチコアを活かすには工夫が必要 • プログラムの反映に再起動が必要(課金系に 向かない)
11.
対応プラットフォーム • Windows • Mac •
Linux それぞれでインストーラーが用意されており、公式サ イトからそれを落としてインストールするだけ。 • 拡張性 npmというパッケージ管理ツールによりサードパーティ 製のモジュールを追加することができる。PHPのPEAR やPerlのCPANみたいな。
12.
モジュール一覧 ■npmモジュール • socket.io - リアルタイムWEBアプリケーションによく使われ る • node-mysql
- MySQLのDBに接続 • node-redis - Redisに接続 • node-gcm - Androidのプッシュを送信 • node-apn - iPhoneのプッシュを送信 • ursa - 秘密鍵暗号・複合化 ■公式モジュール • crypto - 共通鍵暗号・複合化 • fs - ファイルを操作 • http - apacheのようなHTTPサーバーを立てたり、HTTPリク エストを飛ばしたりできる(公式) • ReadableStream,Writable Stream (JAVAみたいな?)
13.
リアルタイム通信について • node.jsはリアルタイム通信を作りたい!など の時によく使われるらしい。 • しかし、”リアルタイム通信”なWEBアプリケー ションはnode.jsでなくとも構築できます。 •
そこで、どうやってリアルタイム通信を構築し ているか理解する為にサーバーからのプッ シュ送信によく使われる仕組みをいくつか説 明しておきます。
14.
XmlHttpRequest(XHR)について • ウェブブラウザ上のJavascriptから発行される HTTPリクエストを発信するオブジェクトの名前。 • Ajax通信の基本Object •
それを利用し、サーバーから情報を送りたい 時までレスポンスを返さず接続を張りっぱな しにすることを”ロングポーリング”という。 socket.ioでも一部取り入れられている。
15.
WebSocketについて • HTTPを拡張した通信規格の一つ。 • Webサーバーとウェブブラウザの双方向通信 用に作られた。これができるまでは XmlHttpRequestをもとに作られた擬似的双方 向通信しかなかった。 •
一度コネクションをはるとその上でデータの 送受信を行う為、通信量がXHRより少ない。 • 対応ブラウザが少ない
16.
WebSocketとXHR XHR WebSocket 引用:http://labs.opentone.co.jp/?p=2522
17.
Socket.IOについて • トライフォート社で使用されているリアルタイ ム通信技術。 • もともとは氾濫しているブラウザ仕様の差異 を吸収し、クロスブラウザで使える双方向通 信システムを構築する為に作られた。 •
その為、独自プロトコルみたいになっている
18.
Socket.IO通信フロー クライアント サーバー クライアント 接続 Handshake (WebSocketか XHRポーリングか判別) 双 方 向 通 信 が 確 立 接続 Handshake (WebSocketか XHRポーリングか判別) チャット送信 チャット受信 チャット送信 チャット受信 双 方 向 通 信 が 確 立
19.
Socket.IOの機能 "Room"という概念 チャットルームのように、あるネームスペースにクライアントをジョインさせると、そ こに入っているユーザーだけに対してプッシュ送信ができる。 ただのWebSocketライブラリ等にはない機能で、実装が楽。 コード例 部屋に入る socket.join("ルーム1"); 部屋から出る socket.leave("ルーム1"); 部屋全体に向けてデータ送信 io.sockets.to("ルーム1").emit(data); ネームスペース“ルーム1”にjoin ネームスペース“ルーム1”からleave ネームスペース“ルーム1”にemit ネームスペース=チャットルーム的な区分け
20.
複数サーバーでSocket.IO RedisPubSubによるサーバー間セッション共有 Socket.IOの機能として組み込まれている。Redisのhost,portを指定するだけ Redis ネームスペースやクライア ントのセッションIDを共有 サーバー1 サーバー2 Socket.ioプロセス Socket.ioプロセス バランサーサーバー クライアント クライアント クライアント クライアントはどのサーバーへつなぐか意識しなくてよい クライアント
21.
リアルタイム通信ができる仕組み 実はnode.js以外にもいろいろあるんです。 • Jetty -
Webサーバ。JAVA。WebSocketをサポート • Play - JAVAやScalaで書けるWebフレームワーク。 WebSocketをサポート • GoogleのMobile Backend Starter - サーバーを介さ ずAndroid同士のチャットができる。 参考:やんざむさんのブログ
22.
リアルタイム通信ができる仕組み WebSocket以外にもこんなものが。 • Comet -
Ajax通信で、WEBサーバーがデータを更新 するまでレスポンスを返さないとか。 • SPDY - HTTP通信を拡張したプロトコル。TLS接続の 上にセッション層を追加。LINEのバックグラウンド • SIP - Session Initiation Protocol。UDPにも対応したプ ロトコル。動画などもリアルタイムにやりとりできる
23.
以上
Download