SlideShare a Scribd company logo
Submit Search
Upload
Login
Signup
Nodejs+socket ioを試す
Report
uzundk
Follow
May. 5, 2014
•
0 likes
•
2,506 views
1
of
17
Nodejs+socket ioを試す
May. 5, 2014
•
0 likes
•
2,506 views
Download Now
Download to read offline
Report
Software
Technology
Business
uzundk
Follow
Recommended
新登場!Surface Laptop 4
Tomokazu Kizawa
339 views
•
24 slides
Technical session 2 iaa s 始めました~自社内にある windows も linux もそして sql server も azur...
GoAzure
772 views
•
31 slides
Play frameworkの概要
Shuhei Kaneko
604 views
•
9 slides
Osc spring 20220311
Yasuaki Sera
419 views
•
13 slides
最近の Windows Azure ってどう?
Sunao Tomita
1.9K views
•
25 slides
.NETラボ2021年10月 .NETの過去と現在
TomomitsuKusaba
330 views
•
27 slides
More Related Content
What's hot
Nodeについて
Natsuki Yamanaka
15.9K views
•
23 slides
Node
Michiel huntingfield
112 views
•
10 slides
B 2-1 はじめての Windows Azure
GoAzure
786 views
•
24 slides
初めてのMongo db
Ryuji Tamagawa
2.7K views
•
32 slides
ASP.NET Core WebAPIでODataを使おう
DevTakas
306 views
•
20 slides
Cedec2014モバイル初のNoSQLを使ってみよう
Kazumi Hirose
557 views
•
22 slides
What's hot
(20)
Nodeについて
Natsuki Yamanaka
•
15.9K views
Node
Michiel huntingfield
•
112 views
B 2-1 はじめての Windows Azure
GoAzure
•
786 views
初めてのMongo db
Ryuji Tamagawa
•
2.7K views
ASP.NET Core WebAPIでODataを使おう
DevTakas
•
306 views
Cedec2014モバイル初のNoSQLを使ってみよう
Kazumi Hirose
•
557 views
2016年注目の.netテクノロジー
Makoto Nishimura
•
2.8K views
中国にOpenflowを入れてきた話
cloretsblack
•
2.5K views
後期講座01
Takenori Nakagawa
•
1.1K views
試してわかるSDN
cloretsblack
•
2.5K views
はじめての Azure 開発
Yoshitaka Seo
•
1.3K views
OSC 2012 Fukuoka
Masaki Takeda
•
1.6K views
Play ja 3_update
Takafumi Ikeda
•
2.2K views
Jvm operation casual talks
oranie Narut
•
8.8K views
Memtest86をかけてみた話
Yasuaki Sera
•
197 views
Node.jsではじめるサーバ構築
AimingStudy
•
3.4K views
20120222
晶 川俣
•
472 views
BIOSからUEFI
Yasuaki Sera
•
57 views
クラウドを活用したシステム開発における、ネットワークのInfrastructure as Code
skipping classes
•
2.9K views
Webアプリケーションによる電源管理システムのご紹介
npsg
•
1.8K views
Viewers also liked
Socket.io - Intro
Antonio Kobashikawa Carrasco
942 views
•
16 slides
10 Awesome Websites Built With Laravel Framework
DeSmart Agile Software House
13.3K views
•
75 slides
Node.js 淺談socket.io
Simon Su
4K views
•
18 slides
Socket.io
Timothy Fitz
3.1K views
•
13 slides
Real time web: is there a life without socket.io and node.js?
Eduard Trayan
6.9K views
•
54 slides
Laravel Blade Template
Mindfire Solutions
2K views
•
46 slides
Viewers also liked
(9)
Socket.io - Intro
Antonio Kobashikawa Carrasco
•
942 views
10 Awesome Websites Built With Laravel Framework
DeSmart Agile Software House
•
13.3K views
Node.js 淺談socket.io
Simon Su
•
4K views
Socket.io
Timothy Fitz
•
3.1K views
Real time web: is there a life without socket.io and node.js?
Eduard Trayan
•
6.9K views
Laravel Blade Template
Mindfire Solutions
•
2K views
Real Time Communication using Node.js and Socket.io
Mindfire Solutions
•
5.5K views
Real-time Web Application with Socket.IO, Node.js, and Redis
York Tsai
•
33.4K views
NodeJS基礎教學&簡介
GO LL
•
41K views
Similar to Nodejs+socket ioを試す
Gmo media.inc 第9回西日本ossの普及を考える会
Dai Utsui
1.3K views
•
62 slides
Oracleがnode.jsをやり始めたというのだが!
Hiroshi Hayakawa
2.9K views
•
42 slides
ONOS and Lagopus
Yoshihiko Kanaumi
215 views
•
14 slides
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
10.1K views
•
63 slides
わんくま東京勉強会#46 Azureセッション資料
guest628c07
715 views
•
40 slides
わんくま東京勉強会#46 Azureセッション資料
Shinichiro Isago
829 views
•
40 slides
Similar to Nodejs+socket ioを試す
(20)
Gmo media.inc 第9回西日本ossの普及を考える会
Dai Utsui
•
1.3K views
Oracleがnode.jsをやり始めたというのだが!
Hiroshi Hayakawa
•
2.9K views
ONOS and Lagopus
Yoshihiko Kanaumi
•
215 views
これからのJDK/JVM 何を選ぶ?どう選ぶ?
Takahiro YAMADA
•
10.1K views
わんくま東京勉強会#46 Azureセッション資料
guest628c07
•
715 views
わんくま東京勉強会#46 Azureセッション資料
Shinichiro Isago
•
829 views
Microsoft AI Solution Update / DLL community Update
Hirono Jumpei
•
799 views
増加するコアを使い切れ!!
guestc06e54
•
1.7K views
Vsug day 2010 summer windows azure でやってみよう
mizusawa
•
31.6K views
20201127 .NET 5
Takayoshi Tanaka
•
414 views
「宣言的プログラミング」とSDNのひとつの形態
npsg
•
2.4K views
Mk network programmability-03
Miya Kohno
•
2K views
Windows azureって何
Kana SUZUKI
•
1.4K views
Mvc conf session_5_isami
Hiroshi Okunushi
•
706 views
サポート エンジニアが語る、Microsoft Azure を支えるインフラの秘密
ShuheiUda
•
5.9K views
プログラミング生放送第7回 比べてみようPaaSクラウド~Azure VS GAE~
normalian
•
838 views
Intel OpenVINO、 NVIDIA Deepstream対応開発キットから、 エッジサーバー、Azure Data Box Edgeまで、 Az...
IoTビジネス共創ラボ
•
2K views
node.js koとhtml5とwebsocketsと
scdn
•
591 views
OpenJDK コミュニティに参加してみよう #jjug
Yuji Kubota
•
8K views
Nodeにしましょう
Yuzo Hebishima
•
294 views
Nodejs+socket ioを試す
1.
@Uzundk node.js + Socket.IO
2.
@uzundk •社内システムエンジニア兼務 •Excelマクロ •小規模グループ向けに開発/展開 •VBA 6年 •PHP 1年 •node.js
3ヶ月
3.
とは? • イベント駆動 • 非IOブロッキングモデル Node.js
uses an event-driven, non-blocking I/O model http://nodejs.org/より
4.
• CPUと周辺の差の拡大 IOがボトルネック •
C10K問題 1接続1スレッドは無駄が多いので1スレッドイベ ントループで処理 • イベントループでブロッキングすると他も止まる 非IOブロッキング node.jsのなにがおいしいの?
5.
year CPU GHz FLOPS /Clock Core GFLOPS /Core Total GFLOPS mem mem GB/s HDD GB/s 2006 Core Duo 2.33
1.5 2 3.495 6.99 DDR2 -4200 4.267 0.07 2014 Haswell 3.5 16 4 56 224 DDR3 -10600 21.2 0.15 Update Rate 16.02 32.05 4.97 2.14性能差はさらに広がる> 性能の進化をざっくり比較
6.
It's care-free realtime
100% in JavaScript. ケアフリー?
7.
• Ajax long
polling バックグラウンドでHTTP通信 通信コストが高い • Plugin Socket FLASH,Sliverlightなどのプラグイン 端末にプラグインのインストールが必要 • WebSocket HTTP接続をupgradeして接続 モダンブラウザのみ とにかくどれでも良いから同じコードで繋げたい ネットワークの情報をもっとリアルタイムに
8.
$(function(){! //開いたアドレスに対してWebSocketを繋ぐ! var socket =
io.connect('http://'+window.location.host+'/');! ! //接続したら! socket.on('connect',function(){! ! ! ! ! //メッセージ送信! socket.emit('echo','Connection Success');! ! ! //echo test! socket.on('echo',function(msg){! console.log('echo : '+msg);! socket.emit('broadcast','user login');! });! ! ! //broadcast test! socket.on('broadcast',function(msg){! console.log('broadcast : '+msg);! });! ! ! //Disconnect! socket.on('disconnect',function(){! console.log('Disconnect Server.');! });! });! ! });! 自分でeventnameを決める 切断されたら Client side broadcastを受ける echoEventが返ってきたら broadcastを送信 event名:echoでメッセージ送信 接続できたら Socket.IOで接続
9.
//Express! var server =
http.createServer(app);! server.listen(app.get('port'), function(){! console.log('Express server listening on port ' + app.get('port'));! });! ! //WebsocketModule! var socketIO = require('socket.io');! ! //Listener! var io = socketIO.listen(server);! ! //接続Event! var sockets = io.sockets.on('connection',function(client){! ! ! ! //echo message! client.on('echo',function(msg){! client.emit('echo',msg);! });! ! //broadcast message! client.on('broadcast',function(msg){! client.emit('broadcast',msg);! client.broadcast.emit('broadcast',msg);! });! ! //disconnect! client.on('disconnect', function() {! client.broadcast.emit('broadcast','disconnected ');! });! ! }); ! ExpressでHTTPサーバー作成 同じアドレス上にIOを作成 接続eventのCallback echo event 自分でeventnameを決める broadcast event 切断されたら Server side
10.
処理の流れ emit/sendで起動し、onで受け取る socket.emit('echo','Connection Success'); client.on('echo',function(msg){! ! client.emit('echo',msg);! });! socket.on('echo',function(msg){! !
console.log('echo : '+msg);! ! socket.emit('broadcast','user login');! }); client.on('broadcast',function(msg){! ! client.emit('broadcast',msg);! ! client.broadcast.emit('broadcast',msg);! });! socket.on('broadcast',function(msg){! ! console.log('broadcast : '+msg);! });! z client.emit > 送ってきた相手に送信 client.broadcast.emit > 送ってきた相手以外に送信 sockets.emit > 全てのクライアントに送信 z Client Server
11.
socket.on('echo',function(msg){! ! console.log('echo :
'+msg);! }); client.emit('echo',msg); socket.on(‘echo',function(msg,fn){! ! console.log('echo : '+msg);! ! fn('catch')! }); client.emit(‘echo’,msg,function(data){! ! console.log(data)! });! 到達確認の方法
12.
Server Clients Target Worker Worker Worker Worker Worker Target Target Target Target FTP Clients Clients WSWebSocket Target Target Target Target Target Target Target Target Target Target Target Target Target Target Target リアルタイムな監視/収集のイメージ
13.
Server Clients Target Worker Worker Worker Worker Worker Target Target Target Target FTP Clients Clients WSWebSocket Target Target Target Target Target Target Target Target Target Target Target Target Target Target Target DBはどこに置く? DB
14.
どれだけ転送できるの?
15.
ローカル環境での計測 5MB/s前後
16.
• 1:n接続の場合は? • 到達確認をしない場合は? •
クライアント毎のデータの保持 • Redisなどとの連携 もうすこし確認したい事
17.
つづく…