SlideShare a Scribd company logo
1 of 54
Download to read offline
MAKE WEB REAL
RealTime Socket.io
Caesar Chi
http://about.me/clonn
Saturday, April 19, 14
Caesar Chi
clonncd
Saturday, April 19, 14
http://www.flickr.com/photos/kent-chen/6612953485/sizes/l/in/photostream/
Saturday, April 19, 14
REAL TIME?
Saturday, April 19, 14
Saturday, April 19, 14
考慮?
Saturday, April 19, 14
http://www.flickr.com/photos/goldentime/4089413847/sizes/z/in/photostream/
Saturday, April 19, 14
效能
Saturday, April 19, 14
Saturday, April 19, 14
開發成本
Saturday, April 19, 14
Saturday, April 19, 14
http://socket.io/
Saturday, April 19, 14
socket.ioinstall
Saturday, April 19, 14
•Socket.io
•Socket.io
-client
Saturday, April 19, 14
Saturday, April 19, 14
•Chrome
•FireFox
•IE
•Mobile
Saturday, April 19, 14
• WebSocket
• Adobe® Flash® Socket
• AJAX long polling
• AJAX multipart streaming
• Forever Iframe
• JSONP Polling
Saturday, April 19, 14
Simple Code
https://gist.github.com/4049817
Saturday, April 19, 14
var io = require('socket.io').listen(80);
io.sockets.on('connection', function (socket) {
  socket.emit('news', { hello: 'world' });
  socket.on('my other event', function (data) {
    console.log(data);
  });
});
 var socket = io.connect();
  socket.on('news', function (data) {
    console.log(data);
    socket.emit('my other event', { my: 'data' });
  });
Saturday, April 19, 14
var	
  app	
  =	
  require('http').createServer(handler)
	
  	
  ,	
  io	
  =	
  require('socket.io').listen(app)
	
  	
  ,	
  fs	
  =	
  require('fs')
var	
  socketio	
  =	
  require('socket.io'),
	
  	
  	
  	
  io;
function	
  handler	
  (req,	
  res)	
  {
	
  	
  fs.readFile(__dirname	
  +	
  '/index.html',
	
  	
  function	
  (err,	
  data)	
  {
	
  	
  	
  	
  if	
  (err)	
  {
	
  	
  	
  	
  	
  	
  res.writeHead(500);
	
  	
  	
  	
  	
  	
  return	
  res.end('Error	
  loading	
  index.html');
	
  	
  	
  	
  }	
  	
  	
  
	
  	
  	
  	
  res.writeHead(200);
	
  	
  	
  	
  res.end(data);
	
  	
  });	
  
}
Saturday, April 19, 14
反饋式修改
Saturday, April 19, 14
with Express
Saturday, April 19, 14
server	
  =	
  http.createServer(app);
server.listen(app.get('port'),	
  function(){
	
  	
  console.log("Express	
  server	
  listening	
  on	
  port	
  "	
  +	
  app.get('port'));
});
require('./io.server').io(server);
<script	
  type="text/javascript"	
  src="/socket.io/socket.io.js"></script>
<script	
  src="/javascripts/io.client.js"></script>
Saturday, April 19, 14
var	
  socketio	
  =	
  require('socket.io'),
	
  	
  	
  	
  io;
exports.io	
  =	
  function	
  (server)	
  {
	
  	
  io	
  =	
  socketio.listen(server);
	
  	
  io.sockets.on('connection',	
  function	
  (socket)	
  {
	
  	
  	
  	
  socket.emit('init',	
  {
	
  	
  	
  	
  	
  	
  id:	
  socket.id
	
  	
  	
  	
  });
	
  	
  });
};
Saturday, April 19, 14
 var	
  socket	
  =	
  io.connect(),
	
  socket.on('init',	
  function	
  (data)	
  {
	
  	
  	
  concole.log(data);
	
  });
Saturday, April 19, 14
廣播事件
Saturday, April 19, 14
io.sockets.on('connection', function (socket) {
socket.broadcast.emit('user connected');
});
廣播事件(沒有自己)
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
io.sockets.on('connection', function (socket) {
io.sockets.emit('user connected');
});
廣播事件(有自己)
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
設定事件
https://github.com/LearnBoost/Socket.IO/wiki/Configuring-
Socket.IO
Saturday, April 19, 14
io.configure('production',	
  function(){
	
  	
  io.enable('browser	
  client	
  etag');
	
  	
  io.set('log	
  level',	
  1);
	
  	
  io.set('transports',	
  [
	
  	
  	
  	
  'websocket'
	
  	
  ,	
  'flashsocket'
	
  	
  ,	
  'htmlfile'
	
  	
  ,	
  'xhr-­‐polling'
	
  	
  ,	
  'jsonp-­‐polling'
	
  	
  ]);
});
io.configure('development',	
  function(){
	
  	
  io.set('transports',	
  ['websocket']);
});
Saturday, April 19, 14
io.configure('production',	
  function(){
	
  	
  io.enable('browser	
  client	
  etag');
	
  	
  io.set('log	
  level',	
  1);
	
  	
  io.set('transports',	
  [
	
  	
  	
  	
  'websocket'
	
  	
  ,	
  'flashsocket'
	
  	
  ,	
  'htmlfile'
	
  	
  ,	
  'xhr-­‐polling'
	
  	
  ,	
  'jsonp-­‐polling'
	
  	
  ]);
});
io.configure('development',	
  function(){
	
  	
  io.set('transports',	
  ['websocket']);
});
NODE_ENV=production	
  node	
  app.js
Saturday, April 19, 14
io.configure('production',	
  function(){
	
  	
  io.enable('browser	
  client	
  etag');
	
  	
  io.set('log	
  level',	
  1);
	
  	
  io.set('transports',	
  [
	
  	
  	
  	
  'websocket'
	
  	
  ,	
  'flashsocket'
	
  	
  ,	
  'htmlfile'
	
  	
  ,	
  'xhr-­‐polling'
	
  	
  ,	
  'jsonp-­‐polling'
	
  	
  ]);
});
io.configure('development',	
  function(){
	
  	
  io.set('transports',	
  ['websocket']);
});
NODE_ENV=production	
  node	
  app.js
NODE_ENV=development	
  node	
  app.js
Saturday, April 19, 14
例如
Saturday, April 19, 14
// assuming io is the Socket.IO server object
io.configure(function () {
io.set("transports", ["xhr-polling"]);
io.set("polling duration", 10);
});
Saturday, April 19, 14
授權設定
https://github.com/LearnBoost/socket.io/wiki/Authorizing
Saturday, April 19, 14
handshake
Saturday, April 19, 14
Cookie
Saturday, April 19, 14
{
	
  	
  	
  headers:	
  req.headers	
  	
  	
  	
  	
  	
  	
  
//	
  <Object>	
  the	
  headers	
  of	
  the	
  request
	
  ,	
  time:	
  (new	
  Date)	
  +''	
  	
  	
  	
  	
  	
  	
  
//	
  <String>	
  date	
  time	
  of	
  the	
  connection
	
  ,	
  address:	
  socket.address()	
  	
  
//	
  <Object>	
  remoteAddress	
  and	
  remotePort	
  object
	
  ,	
  xdomain:	
  !!headers.origin	
  	
  
//	
  <Boolean>	
  was	
  it	
  a	
  cross	
  domain	
  request?
	
  ,	
  secure:	
  socket.secure	
  	
  	
  	
  	
  	
  
//	
  <Boolean>	
  https	
  connection
	
  ,	
  issued:	
  +date	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
//	
  <Number>	
  EPOCH	
  of	
  when	
  the	
  handshake	
  was	
  created
	
  ,	
  url:	
  request.url	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
//	
  <String>	
  the	
  entrance	
  path	
  of	
  the	
  request
	
  ,	
  query:	
  data.query	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  
//	
  <Object>	
  the	
  result	
  of	
  url.parse().query	
  or	
  a	
  empty	
  object
}
Saturday, April 19, 14
驗證、串接資料
Saturday, April 19, 14
var	
  io	
  =	
  require('socket.io').listen(80);
io.configure(function	
  (){
	
  	
  io.set('authorization',	
  function	
  (handshakeData,	
  callback)	
  {
	
  	
  	
  	
  	
  	
  	
  	
  handshakeData.userData	
  =	
  {
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ‘name’:	
  ‘Caesar’,
	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  	
  ‘age’:	
  18
	
  	
  	
  	
  	
  	
  	
  	
  };
	
  	
  	
  	
  	
  	
  	
  	
  callback(null,	
  true);	
  //	
  error	
  first	
  callback	
  style	
  
	
  	
  });
});
接上 User Connection
Saturday, April 19, 14
io.sockets.on('connection',	
  function	
  (socket)	
  {
	
  	
  	
  	
  
console.log(socket.handshake.userData);
});
User Data 取得
Saturday, April 19, 14
NODE 到底是什麼?
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
Saturday, April 19, 14
範例
• https://github.com/clonn/socket-server
• https://github.com/clonn/comet-todo-list
Saturday, April 19, 14
https://gist.github.com/4049817
https://github.com/clonn/socket-server
https://github.com/clonn/comet-todo-list
Saturday, April 19, 14

More Related Content

Viewers also liked

Tabela 1 i 2
Tabela 1 i 2Tabela 1 i 2
Tabela 1 i 2
ptwp
 
Social Media for Builders and Contractors
Social Media for Builders and ContractorsSocial Media for Builders and Contractors
Social Media for Builders and Contractors
KarenEman
 
822 tnda karen
822 tnda karen822 tnda karen
822 tnda karen
cmiguel7
 
Apresentação denken português 2.0
Apresentação denken português 2.0Apresentação denken português 2.0
Apresentação denken português 2.0
Isaias Santana
 
Leveraging Social Media: Call 4
Leveraging Social Media: Call 4Leveraging Social Media: Call 4
Leveraging Social Media: Call 4
Beth Kanter
 
Preliminary Study of Indoor Ultrawideband Localization for At-Home Patient Mo...
Preliminary Study of Indoor Ultrawideband Localization for At-Home Patient Mo...Preliminary Study of Indoor Ultrawideband Localization for At-Home Patient Mo...
Preliminary Study of Indoor Ultrawideband Localization for At-Home Patient Mo...
specialbaek
 

Viewers also liked (15)

Social Media for B2B: introduction
Social Media for B2B: introduction Social Media for B2B: introduction
Social Media for B2B: introduction
 
Tabela 1 i 2
Tabela 1 i 2Tabela 1 i 2
Tabela 1 i 2
 
8.2.2015 Στέγνâν και Πογάζ’ η Στράτα μ’,Χαριτίδης Κ. Ιωάννης, Χαρίτον.
8.2.2015 Στέγνâν και Πογάζ’ η Στράτα μ’,Χαριτίδης Κ. Ιωάννης, Χαρίτον.8.2.2015 Στέγνâν και Πογάζ’ η Στράτα μ’,Χαριτίδης Κ. Ιωάννης, Χαρίτον.
8.2.2015 Στέγνâν και Πογάζ’ η Στράτα μ’,Χαριτίδης Κ. Ιωάννης, Χαρίτον.
 
Social Media for Builders and Contractors
Social Media for Builders and ContractorsSocial Media for Builders and Contractors
Social Media for Builders and Contractors
 
822 tnda karen
822 tnda karen822 tnda karen
822 tnda karen
 
Apresentação denken português 2.0
Apresentação denken português 2.0Apresentação denken português 2.0
Apresentação denken português 2.0
 
El papel del lurker en las Redes Sociales
El papel del lurker en las Redes SocialesEl papel del lurker en las Redes Sociales
El papel del lurker en las Redes Sociales
 
Leveraging Social Media: Call 4
Leveraging Social Media: Call 4Leveraging Social Media: Call 4
Leveraging Social Media: Call 4
 
Career Path
Career PathCareer Path
Career Path
 
9 de julio.pps
9 de julio.pps9 de julio.pps
9 de julio.pps
 
8o mat 9o_mat_exerc
8o mat 9o_mat_exerc8o mat 9o_mat_exerc
8o mat 9o_mat_exerc
 
Adaptive marketing
Adaptive marketingAdaptive marketing
Adaptive marketing
 
Financing Demographic Shifts Scenarios
 Financing Demographic Shifts   Scenarios Financing Demographic Shifts   Scenarios
Financing Demographic Shifts Scenarios
 
Preliminary Study of Indoor Ultrawideband Localization for At-Home Patient Mo...
Preliminary Study of Indoor Ultrawideband Localization for At-Home Patient Mo...Preliminary Study of Indoor Ultrawideband Localization for At-Home Patient Mo...
Preliminary Study of Indoor Ultrawideband Localization for At-Home Patient Mo...
 
Beautiful Quotes To Live By
Beautiful Quotes To Live ByBeautiful Quotes To Live By
Beautiful Quotes To Live By
 

Similar to Node realtime part

Websockets, Ruby y Pusher Webprendedor 2010
Websockets, Ruby y Pusher Webprendedor 2010Websockets, Ruby y Pusher Webprendedor 2010
Websockets, Ruby y Pusher Webprendedor 2010
Ismael Celis
 
Meetup uikit programming
Meetup uikit programmingMeetup uikit programming
Meetup uikit programming
joaopmaia
 
Using HTML5 for a great Open Web
Using HTML5 for a great Open WebUsing HTML5 for a great Open Web
Using HTML5 for a great Open Web
Robert Nyman
 

Similar to Node realtime part (10)

Node worshop Realtime - Socket.io
Node worshop Realtime - Socket.ioNode worshop Realtime - Socket.io
Node worshop Realtime - Socket.io
 
Websockets, Ruby y Pusher Webprendedor 2010
Websockets, Ruby y Pusher Webprendedor 2010Websockets, Ruby y Pusher Webprendedor 2010
Websockets, Ruby y Pusher Webprendedor 2010
 
The Backend Side of the Mobile
The Backend Side of the MobileThe Backend Side of the Mobile
The Backend Side of the Mobile
 
Great Developers Steal
Great Developers StealGreat Developers Steal
Great Developers Steal
 
Best practices for crafting high quality PHP apps (php[world] 2019)
Best practices for crafting high quality PHP apps (php[world] 2019)Best practices for crafting high quality PHP apps (php[world] 2019)
Best practices for crafting high quality PHP apps (php[world] 2019)
 
JavaScript Promise
JavaScript PromiseJavaScript Promise
JavaScript Promise
 
Introducing YUI 3 AutoComplete
Introducing YUI 3 AutoCompleteIntroducing YUI 3 AutoComplete
Introducing YUI 3 AutoComplete
 
Meetup uikit programming
Meetup uikit programmingMeetup uikit programming
Meetup uikit programming
 
Best practices for crafting high quality PHP apps (Bulgaria 2019)
Best practices for crafting high quality PHP apps (Bulgaria 2019)Best practices for crafting high quality PHP apps (Bulgaria 2019)
Best practices for crafting high quality PHP apps (Bulgaria 2019)
 
Using HTML5 for a great Open Web
Using HTML5 for a great Open WebUsing HTML5 for a great Open Web
Using HTML5 for a great Open Web
 

More from Caesar Chi

More from Caesar Chi (20)

為何技術老人這樣想那樣做?
為何技術老人這樣想那樣做?為何技術老人這樣想那樣做?
為何技術老人這樣想那樣做?
 
面試AI技術大進化,加速招聘軟體工程師的全套攻略!
面試AI技術大進化,加速招聘軟體工程師的全套攻略!面試AI技術大進化,加速招聘軟體工程師的全套攻略!
面試AI技術大進化,加速招聘軟體工程師的全套攻略!
 
初探工程師升級手冊 2022
初探工程師升級手冊 2022初探工程師升級手冊 2022
初探工程師升級手冊 2022
 
預約及客服 LINE 服務串接大挑戰
預約及客服 LINE 服務串接大挑戰預約及客服 LINE 服務串接大挑戰
預約及客服 LINE 服務串接大挑戰
 
Remote monitoring widget setup and customization
Remote monitoring  widget setup and customizationRemote monitoring  widget setup and customization
Remote monitoring widget setup and customization
 
JS 從 Non-type 到 Type 的愛恨情仇
JS 從 Non-type 到 Type 的愛恨情仇JS 從 Non-type 到 Type 的愛恨情仇
JS 從 Non-type 到 Type 的愛恨情仇
 
LINE@ 2.0 offline to online
LINE@ 2.0  offline to onlineLINE@ 2.0  offline to online
LINE@ 2.0 offline to online
 
Chatbot 智能溝通策 流程規劃與實做 e-Commerce Chatbot - AI strategy and Chat bot user flow
Chatbot 智能溝通策 流程規劃與實做 e-Commerce Chatbot - AI strategy and Chat bot user flow Chatbot 智能溝通策 流程規劃與實做 e-Commerce Chatbot - AI strategy and Chat bot user flow
Chatbot 智能溝通策 流程規劃與實做 e-Commerce Chatbot - AI strategy and Chat bot user flow
 
PWA and Chatbot - with e-Commerce experience sharing
PWA and Chatbot - with e-Commerce experience sharingPWA and Chatbot - with e-Commerce experience sharing
PWA and Chatbot - with e-Commerce experience sharing
 
Morden F2E Education - Think of Progressive Web Apps
Morden F2E Education - Think of Progressive Web AppsMorden F2E Education - Think of Progressive Web Apps
Morden F2E Education - Think of Progressive Web Apps
 
codecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introducecodecept.js introduce - front end test E2E tool introduce
codecept.js introduce - front end test E2E tool introduce
 
遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016遠端團隊專案建立與管理 remote team management 2016
遠端團隊專案建立與管理 remote team management 2016
 
Introduce Angular2 & render & firebase flow
Introduce Angular2 & render & firebase flowIntroduce Angular2 & render & firebase flow
Introduce Angular2 & render & firebase flow
 
如何提昇技術力 - 參與技術社群之經驗分享
如何提昇技術力 - 參與技術社群之經驗分享如何提昇技術力 - 參與技術社群之經驗分享
如何提昇技術力 - 參與技術社群之經驗分享
 
html5 & phonegap
html5 & phonegaphtml5 & phonegap
html5 & phonegap
 
From devOps to front end Ops, test first
From devOps to front end Ops, test firstFrom devOps to front end Ops, test first
From devOps to front end Ops, test first
 
Docker with Cloud Service GCPUG
Docker with Cloud Service  GCPUGDocker with Cloud Service  GCPUG
Docker with Cloud Service GCPUG
 
從失敗中學習打造技術團隊
從失敗中學習打造技術團隊從失敗中學習打造技術團隊
從失敗中學習打造技術團隊
 
Docker with Cloud Service
Docker with Cloud ServiceDocker with Cloud Service
Docker with Cloud Service
 
技術單兵作戰及團隊開發流程差異
技術單兵作戰及團隊開發流程差異技術單兵作戰及團隊開發流程差異
技術單兵作戰及團隊開發流程差異
 

Recently uploaded

Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
delhimunirka15
 
ppt seni budaya kelas xi, menganalisis konsep,unsur,prinsip dan teknik
ppt seni budaya kelas xi, menganalisis konsep,unsur,prinsip dan teknikppt seni budaya kelas xi, menganalisis konsep,unsur,prinsip dan teknik
ppt seni budaya kelas xi, menganalisis konsep,unsur,prinsip dan teknik
Agustinus791932
 
Mussafah Call Girls +971525373611 Call Girls in Mussafah Abu Dhabi
Mussafah Call Girls +971525373611 Call Girls in Mussafah Abu DhabiMussafah Call Girls +971525373611 Call Girls in Mussafah Abu Dhabi
Mussafah Call Girls +971525373611 Call Girls in Mussafah Abu Dhabi
romeke1848
 
Russian Call Girls Lucknow Just Call 👉👉 📞 8617370543 Top Class Call Girl Serv...
Russian Call Girls Lucknow Just Call 👉👉 📞 8617370543 Top Class Call Girl Serv...Russian Call Girls Lucknow Just Call 👉👉 📞 8617370543 Top Class Call Girl Serv...
Russian Call Girls Lucknow Just Call 👉👉 📞 8617370543 Top Class Call Girl Serv...
Nitya salvi
 
obat aborsi Klaten wa 082135199655 jual obat aborsi cytotec asli di Klaten
obat aborsi Klaten wa 082135199655 jual obat aborsi cytotec asli di Klatenobat aborsi Klaten wa 082135199655 jual obat aborsi cytotec asli di Klaten
obat aborsi Klaten wa 082135199655 jual obat aborsi cytotec asli di Klaten
siskavia95
 
Engineering Major for College_ Environmental Health Engineering by Slidesgo.pptx
Engineering Major for College_ Environmental Health Engineering by Slidesgo.pptxEngineering Major for College_ Environmental Health Engineering by Slidesgo.pptx
Engineering Major for College_ Environmental Health Engineering by Slidesgo.pptx
DanielRemache4
 

Recently uploaded (20)

Theoretical Framework- Explanation with Flow Chart.docx
Theoretical Framework- Explanation with Flow Chart.docxTheoretical Framework- Explanation with Flow Chart.docx
Theoretical Framework- Explanation with Flow Chart.docx
 
Completed Event Presentation for Huma 1305
Completed Event Presentation for Huma 1305Completed Event Presentation for Huma 1305
Completed Event Presentation for Huma 1305
 
Azamgarh Call Girls WhatsApp Chat: 📞 8617370543 (24x7 ) Service Available Nea...
Azamgarh Call Girls WhatsApp Chat: 📞 8617370543 (24x7 ) Service Available Nea...Azamgarh Call Girls WhatsApp Chat: 📞 8617370543 (24x7 ) Service Available Nea...
Azamgarh Call Girls WhatsApp Chat: 📞 8617370543 (24x7 ) Service Available Nea...
 
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
Nehru Nagar, Call Girls ☎️ ((#9711106444)), 💘 Full enjoy Low rate girl💘 Genui...
 
HUMA Final Presentation About Chicano Culture
HUMA Final Presentation About Chicano CultureHUMA Final Presentation About Chicano Culture
HUMA Final Presentation About Chicano Culture
 
Call Girls Ahwa Just Call 📞 8617370543 Top Class Call Girl Service Available
Call Girls Ahwa Just Call 📞 8617370543 Top Class Call Girl Service AvailableCall Girls Ahwa Just Call 📞 8617370543 Top Class Call Girl Service Available
Call Girls Ahwa Just Call 📞 8617370543 Top Class Call Girl Service Available
 
ppt seni budaya kelas xi, menganalisis konsep,unsur,prinsip dan teknik
ppt seni budaya kelas xi, menganalisis konsep,unsur,prinsip dan teknikppt seni budaya kelas xi, menganalisis konsep,unsur,prinsip dan teknik
ppt seni budaya kelas xi, menganalisis konsep,unsur,prinsip dan teknik
 
Mussafah Call Girls +971525373611 Call Girls in Mussafah Abu Dhabi
Mussafah Call Girls +971525373611 Call Girls in Mussafah Abu DhabiMussafah Call Girls +971525373611 Call Girls in Mussafah Abu Dhabi
Mussafah Call Girls +971525373611 Call Girls in Mussafah Abu Dhabi
 
SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)
SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)
SB_ Scott Pilgrim_ Rough_ RiverPhan (2024)
 
Orai call girls 📞 8617370543At Low Cost Cash Payment Booking
Orai call girls 📞 8617370543At Low Cost Cash Payment BookingOrai call girls 📞 8617370543At Low Cost Cash Payment Booking
Orai call girls 📞 8617370543At Low Cost Cash Payment Booking
 
Russian Call Girls Lucknow Just Call 👉👉 📞 8617370543 Top Class Call Girl Serv...
Russian Call Girls Lucknow Just Call 👉👉 📞 8617370543 Top Class Call Girl Serv...Russian Call Girls Lucknow Just Call 👉👉 📞 8617370543 Top Class Call Girl Serv...
Russian Call Girls Lucknow Just Call 👉👉 📞 8617370543 Top Class Call Girl Serv...
 
THE ARTS OF THE PHILIPPINE BALLET PRESN
THE ARTS OF  THE PHILIPPINE BALLET PRESNTHE ARTS OF  THE PHILIPPINE BALLET PRESN
THE ARTS OF THE PHILIPPINE BALLET PRESN
 
Jaunpur Escorts Service Girl ^ 9332606886, WhatsApp Anytime Jaunpur
Jaunpur Escorts Service Girl ^ 9332606886, WhatsApp Anytime JaunpurJaunpur Escorts Service Girl ^ 9332606886, WhatsApp Anytime Jaunpur
Jaunpur Escorts Service Girl ^ 9332606886, WhatsApp Anytime Jaunpur
 
Call Girls In Firozabad Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Firozabad Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...Call Girls In Firozabad Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
Call Girls In Firozabad Escorts ☎️8617370543 🔝 💃 Enjoy 24/7 Escort Service En...
 
Turn Off The Air Con - The Singapore Punk Scene
Turn Off The Air Con - The Singapore Punk SceneTurn Off The Air Con - The Singapore Punk Scene
Turn Off The Air Con - The Singapore Punk Scene
 
Jaro je tady - Spring is here (Judith) 4
Jaro je tady - Spring is here (Judith) 4Jaro je tady - Spring is here (Judith) 4
Jaro je tady - Spring is here (Judith) 4
 
obat aborsi Klaten wa 082135199655 jual obat aborsi cytotec asli di Klaten
obat aborsi Klaten wa 082135199655 jual obat aborsi cytotec asli di Klatenobat aborsi Klaten wa 082135199655 jual obat aborsi cytotec asli di Klaten
obat aborsi Klaten wa 082135199655 jual obat aborsi cytotec asli di Klaten
 
Sonbhadra Escorts 📞 8617370543 | Sonbhadra Call Girls
Sonbhadra  Escorts 📞 8617370543 | Sonbhadra Call GirlsSonbhadra  Escorts 📞 8617370543 | Sonbhadra Call Girls
Sonbhadra Escorts 📞 8617370543 | Sonbhadra Call Girls
 
Jaro je tady - Spring is here (Judith) 3
Jaro je tady - Spring is here (Judith) 3Jaro je tady - Spring is here (Judith) 3
Jaro je tady - Spring is here (Judith) 3
 
Engineering Major for College_ Environmental Health Engineering by Slidesgo.pptx
Engineering Major for College_ Environmental Health Engineering by Slidesgo.pptxEngineering Major for College_ Environmental Health Engineering by Slidesgo.pptx
Engineering Major for College_ Environmental Health Engineering by Slidesgo.pptx
 

Node realtime part