•
•
•
•
•
•
•
•
http://socialmetrics.co.kr/searchKeywordMap.html
http://www.google.com/trends/
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
http://blog.gopivotal.com/cloud-foundry-pivotal/products/future-proofing-your-apps-cloud-foundry-and-node-js
http://blog.gopivotal.com/cloud-foundry-pivotal/products/future-proofing-your-apps-cloud-foundry-and-node-js
•
•
•
•
•
C/C++ libraries
node bindings
standard libraries
application codes
javascript
C/C++
node
lib src
uv
cares
http_parser
openssl
V8
zlib
standardlibraries
nodebindings
zlib
event, non-block I/O
async DNS library
http message parser
cryptography
javascript engine
src/node.cc
node V8 libuv
매개변수에 따라V8 컨텍스트 생성및 표준 모듈 초기화
기본 루프 실행
메인 스크립트 실행hello world 출력
IOCP 이벤트 루프 시작
open
event loopV8 I/O threadfs
fs.open()
binding
Open()
ASYNC_CALLuv_fs_open()fs__open()SET_REQ_RESULT()
데이터 출력
uv_poll_ex()uv_process_reqs()req->cb()
•
•
listen
event loopV8 libuvnet
Server.listen()
binding
Listen()
uv_listen()
acceptex()
웹 브라우저 tcp 접속 시,
uv_process_tcp_accept_req()TCPWrap::OnConnection()
Server.on(‘connection’)
event loopV8 libuv
StreamWrap::ReadStart
binding
uv_tcp_read_start()
uv_process_tcp_read_req()uv_tcp_queue_read()WSARecv()
socket.on(‘end’)request.on(‘end’)
uv_read_start()
event loopV8 libuv
StreamWrap::WriteBuffer()
binding
uv_tcp_write()
다 전송 될 때 까지계속 전송 시도전송완료 후 노티
response.on(‘end’)
uv_write()
•
•
•
•
•
•
while
web browser http
페이지 요청
event loop
리스너 실행
무한 루프
묵묵부답…서비스 불가
웹 브라우저는계속 로딩만…
•
•
• 무한루프
•
•
•
•
Top Related